3

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

简单的 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:

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\distributions”

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

请帮我在netbeans、gradle下制作一个可执行的jar。

4

2 回答 2

0

我最近有同样的问题。对我来说,它原来是构建系统。
如果我在 32 位 jvm 上通过 gradle 和 javafx 构建我的应用程序,则会导致您遇到相同的错误。
如果我在 64 位系统上构建它,一切都很好。所以我想部署自包含的 32 位 Java 应用程序仍然是一个问题。我用 Java 7 对其进行了测试。

于 2014-04-14T07:34:36.633 回答
0

似乎存在一个看起来很有前途的新插件:

从存储库自述文件中:

使用 javafx-gradle-plugin 可以通过 javapackager-power 增强您的构建脚本。不再使用 Apache Ant 调用,因为这个 gradle-plugin 包装了所有调用,并为尚未修复的 JDK 错误引入了解决方法和修复。这个 gradle-plugin 是 javapackger 的一个方便的包装器,所以你必须访问官方文档来了解每个操作系统的要求。

为什么这个 gradle-plugin 存在?

由于 gradle 需要一些等效的 javafx-maven-plugin,所以这个项目诞生了。你们中的很多人可能使用过 Danno Ferrin 的 javafx-gradle-plugin,但他决定不再继续该项目。

在https://github.com/FibreFoX/javafx-gradle-plugin查看

于 2019-01-18T09:16:49.067 回答