Не удалось создать независимый от платформы jar для JavaFX 11 - PullRequest
0 голосов
/ 10 ноября 2018

Создание простого приложения HelloWorld с JavaFX 11 и Maven только с этой зависимостью:

<dependencies>
    <dependency>
        <groupId>org.openjfx</groupId>
        <artifactId>javafx-controls</artifactId>
        <version>11</version>
    </dependency>
</dependencies>

В результате получается дерево зависимостей:

[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ javafx-module-test ---
[INFO] ch.sahits.test:javafx-module-test:jar:1.0-SNAPSHOT
[INFO] \- org.openjfx:javafx-controls:jar:11:compile
[INFO]    +- org.openjfx:javafx-controls:jar:linux:11:compile
[INFO]    \- org.openjfx:javafx-graphics:jar:11:compile
[INFO]       +- org.openjfx:javafx-graphics:jar:linux:11:compile
[INFO]       \- org.openjfx:javafx-base:jar:11:compile
[INFO]          \- org.openjfx:javafx-base:jar:linux:11:compile

Как вы можете догадаться из вышеприведенного вывода, я запустил его на машине с Linux, что оставило у меня плохое предчувствие по поводу создания исполняемых jar-файлов, переносимых на другие ОС. Поэтому я решил создать такой jar-файл, используя плагин сборки: Executable jar layout Как вы можете видеть на приведенном выше изображении содержимого jar-файла, есть встроенные библиотеки. Для Windows это, вероятно, будет несколько DLL.

Как мы можем создать исполняемый jar-файл для приложения JavaFX, который можно запустить где угодно?

Единственный способ, который я мог бы себе представить, это потребовать, чтобы среда выполнения OpenJFX была установлена ​​на целевой машине, чтобы ее не нужно было объединять в банке, но этого следует избегать, поскольку это очень недружелюбно для пользователя.

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