Как вы запускаете jlink, чтобы создать среду выполнения для вашего приложения JavaFX? - PullRequest
0 голосов
/ 20 февраля 2019

Предыстория: я пытаюсь раздать свое приложение openJDK11, openJFX моему другу.Я использую этот учебник: https://medium.com/azulsystems/using-jlink-to-build-java-runtimes-for-non-modular-applications-9568c5e70ef4

Здесь вы можете видеть, что javafx указан в моих зависимостях:

IntelliJ dependencies view

ВыЗдесь видно, что мои данные модуля настроены так, как это может потребоваться для запуска приложения:

module FractalFriend_m {


    requires javafx.base;
    requires javafx.controls;
    requires javafx.fxml;
    requires javafx.graphics;

    opens com.potatospy;


}

Здесь вы можете видеть, что параметры моей виртуальной машины введены правильно:

--module-path=C:\Users\USERNAME\Documents\javafx-sdk-11.0.2\lib --add-modules=javafx.controls,javafx.fxml,javafx.base,javafx.graphics

Запуск:

jdeps --module-path C:\Users\USERNAME\Documents\javafx-sdk-11.0.2\lib --list-deps FractalFriend_m.jar

Результат:

 java.base
   javafx.base
   javafx.controls
   javafx.fxml
   javafx.graphics

И, наконец, я запускаю jlink, чтобы, надеюсь, создать что-то, что может запустить любой:

jlink --no-header-files --no-man-pages --compress=2 --strip-debug --add-modules javafx.controls,javafx.fxml,javafx.base,javafx.graphics --output java-runtime

Что приводит к:

Ошибка: модуль javafx.base не найден

1 Ответ

0 голосов
/ 25 мая 2019

JavaFX должен быть загружен отдельно, и при вызове jlink это должно быть указано с аргументом -p (--module-path).

jlink --no-header-files --no-man-pages --compress=2 --strip-debug -p <path_java_fx_sdk_lib> --add-modules javafx.controls,javafx.fxml,javafx.base,javafx.graphics  --output java-runtime

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...