首页 文章

如何使用maven构建可运行的JavaFX应用程序?

提问于
浏览
3

我是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();
}

hello_world

我找到了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**

1 回答

  • 4

    现在有一个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>
    

相关问题