3

実行可能なjarを作成しようとしています。私のIDEはNetbeans 7.3.1で、Netbeans用の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 ファイル:

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を作成するのを手伝ってください。

4

2 に答える 2

0

私は最近同じ問題を抱えていました。私にとっては、ビルドシステムであることが判明しました。
32 ビット jvm で gradle と javafx を使用してアプリをビルドすると、同じエラーが発生しました。
64ビットシステムでビルドした場合、すべてうまくいきました。したがって、自己完結型の 32 ビット Java アプリをデプロイすることは、まだ問題があると思います。Java 7でテストしました。

于 2014-04-14T07:34:36.633 に答える
0

非常に有望に見える新しいプラグインが存在するようです。

リポジトリの README から:

javafx-gradle-plugin を使用すると、ビルド スクリプトが javapackager-power で強化されます。この gradle-plugin はすべての呼び出しをラップし、まだ修正されていない JDK バグの回避策と修正を導入するため、Apache Ant 呼び出しを使用する必要はもうありません。この 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 に答える