首页 文章

使用JavaFx插件制作可执行jar用于gradle

提问于
浏览
3

我正在尝试制作一个可执行的jar . 我的IDE是Netbeans 7.3.1,使用Gradle插件用于Netabeans,使用JavaFX plugin用于Gradle .

简单的JavaFX应用程序:

i.lunin.autoposting.Main:

package i.lunin.autoposting;

import java.util.logging.Level;
import java.util.logging.Logger;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class Main extends Application {
    public static void main(String[] args) {
        launch(args);
    }
    @Override
    public void start(Stage primaryStage) {
        primaryStage.setTitle("Hello World! Man!");
        Button btn = new Button();
        btn.setText("Say 'Hello World'");
        btn.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent event) {
                try {
                    Thread.sleep(5000);
                } catch (InterruptedException ex) {
                    Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
                }
                System.out.println("Hello World!");
            }
        });

        StackPane root = new StackPane();
        root.getChildren().add(btn);
        primaryStage.setScene(new Scene(root, 300, 250));
        primaryStage.show();
    }
}

Gradle文件:

的build.gradle:

apply from: "http://dl.bintray.com/content/shemnon/javafx-gradle/0.3.0/javafx.plugin"
apply plugin: 'java'

sourceCompatibility = '1.7'
[compileJava, compileTestJava]*.options*.encoding = 'UTF-8'

repositories {
    mavenCentral()
}

dependencies {
}

group = 'i.lunin.autoposting'
version = '0.0.0'

javafx {
    mainClass = 'i.lunin.autoposting.Main'
}

当我使用 gradle run 时,它在我的IDE中完美运行;但是如果没有IDE我就无法启动它 .

当我使用 gradle :jfxDeploy 它说完了 .

之后,当我尝试从以下位置启动可执行jar时:

“...... TestJava \ build \发行版”

它显示以下错误:“无法找到类:i.lunin.autoposting.Main”

请帮我在netbeans,gradle下制作一个可执行jar .

1 回答

  • 0

    我最近遇到了同样的问题 . 对我来说,它原来是构建系统 .
    如果我通过gradle和javafx在32位jvm上构建我的应用程序,则会导致同样的错误 .
    如果我在64位系统上构建它,一切都很顺利 . 所以我认为部署自包含的32位java应用程序仍然存在问题 . 我用Java 7测试过它 .

相关问题