我是JavaFX的新手.我已经使用maven创建了一个Hello World项目.当我在Eclipse中运行它时,它工作正常.
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
primaryStage.setTitle("Hello World!");
Button btn = new Button();
btn.setText("Say 'Hello World'");
btn.setOnAction(new EventHandler<ActionEvent>() {
public void handle(ActionEvent event) {
System.out.println("Hello World!");
}
});
StackPane root = new StackPane();
root.getChildren().add(btn);
primaryStage.setScene(new Scene(root, 300, 250));
primaryStage.show();
}
我找到了deployment tutorial,但是当我的程序随附Maven时,我不知道如何构建它.
当我尝试使用build.fxbuild构建应用程序时,出现此错误.
Buildfile: C:\test\project\workspace\javafx-helloworld\build\build.xml setup-staging-area: [mkdir] Created dir: C:\test\project\workspace\javafx-helloworld\build\externalLibs [copy] Copying 1 file to C:\test\project\workspace\javafx-helloworld\build\externalLibs [mkdir] Created dir: C:\test\project\workspace\javafx-helloworld\build\project [copy] Copying 1 file to C:\test\project\workspace\javafx-helloworld\build\project [mkdir] Created dir: C:\test\project\workspace\javafx-helloworld\build\projectRefs do-compile: [mkdir] Created dir: C:\test\project\workspace\javafx-helloworld\build\build\src [mkdir] Created dir: C:\test\project\workspace\javafx-helloworld\build\build\libs [mkdir] Created dir: C:\test\project\workspace\javafx-helloworld\build\build\classes [copy] Copying 1 file to C:\test\project\workspace\javafx-helloworld\build\build\libs [copy] Copying 1 file to C:\test\project\workspace\javafx-helloworld\build\build\src [javac] Compiling 1 source file to C:\test\project\workspace\javafx-helloworld\build\build\classes init-fx-tasks: [taskdef] Could not load definitions from resource com/sun/javafx/tools/ant/antlib.xml. It could not be found. do-deploy: [mkdir] Created dir: C:\test\project\workspace\javafx-helloworld\build\dist [mkdir] Created dir: C:\test\project\workspace\javafx-helloworld\build\dist\libs [copy] Copying 1 file to C:\test\project\workspace\javafx-helloworld\build\dist\libs **BUILD FAILED C:\test\project\workspace\javafx-helloworld\build\build.xml:93: Problem: failed to create task or type javafx:com.sun.javafx.tools.ant:resources Cause: The name is undefined. Action: Check the spelling. Action: Check that any custom tasks/types have been declared. Action: Check that any / declarations have taken place. No types or tasks have been defined in this namespace yet**
解决方法:
现在有一个用于JavaFX的maven插件:
https://github.com/zonski/javafx-maven-plugin
<plugin>
<groupId>com.zenjava</groupId>
<artifactId>javafx-maven-plugin</artifactId>
<version>1.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>package</goal>
</goals>
</execution>
</executions>
<configuration>
<mainClass>[put your application main class here]</mainClass>
<bundleType>ALL</bundleType>
</configuration>
</plugin>