создание исполняемого jar javafx

Очень нужна помощь! Как можно правильно упаковать приложение javafx в исполняемый файл, так чтобы оно открывалось простым двойным кликом? Приложение писалось с использованием java 14 и javafx 14 (openJFX). Писал в intellj 2020. Код простой для примера

package sample;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class HelloFX extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception{
        String javaVersion = System.getProperty("java.version");
        String javafxVersion = System.getProperty("javafx.version");
        Label l = new Label(javaVersion + "\n" + javafxVersion);
        Scene scene = new Scene((new StackPane(l)), 640,480);
        primaryStage.setScene(scene);
        primaryStage.show();
    }


    public static void main(String[] args) {
        launch(args);
    }
}

В среде все запускается отлично. Если создавать artifacts javafx application, то при создании Build->Build Artifacts... вываливается ошибка:

Java FX Packager: Unable to build JavaFX artifact. Application class should be specified in artifact's settings.

но при этом jar создается.

пробую создавать artifacts->jar, создается простой jar без ошибок.

оба jar файлы можно запустить только через коммандную строку: перейти в папку с jar файлом и выполнить команду

java --module-path "C:\Program Files\Java\javafx-sdk-14.0.2.1\lib" --add-modules javafx.controls,javafx.fxml -jar HelloFX.jar

либо можно закоментировать в коде package sample, в коммандной строке перейти в каталог содержащий файл HelloFX.java и выполнить команды

javac --module-path "C:\Program Files\Java\javafx-sdk-14.0.2.1\lib" --add-modules javafx.controls,javafx.fxml HelloFX.java
java --module-path "C:\Program Files\Java\javafx-sdk-14.0.2.1\lib" --add-modules javafx.controls,javafx.fxml HelloFX

Есть ли какой-нибудь способ решить проблему? Сам уже несколько дней бьюсь, не могу ничего толком найти... Все что смог найти - пробовал. ПАМАГИТИ!


Ответы (0 шт):