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