Создание простого приложения 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-файл, используя плагин сборки:
Как вы можете видеть на приведенном выше изображении содержимого jar-файла, есть встроенные библиотеки. Для Windows это, вероятно, будет несколько DLL.
Как мы можем создать исполняемый jar-файл для приложения JavaFX, который можно запустить где угодно?
Единственный способ, который я мог бы себе представить, это потребовать, чтобы среда выполнения OpenJFX была установлена на целевой машине, чтобы ее не нужно было объединять в банке, но этого следует избегать, поскольку это очень недружелюбно для пользователя.