На этот вопрос уже отвечали несколько раз для Maven и Gradle . Инструменты сборки упрощают работу, чем в командной строке, и не только благодаря управлению зависимостями.
Поскольку вы спрашиваете конкретно о командной строке, здесь уже задокументирован полный набор инструкций: https://openjfx.io/openjfx-docs/#modular.
Немодульное приложение
Раздел Non-Modular from CLI
охватывает немодульные проекты JavaFX из командной строки и дает вам полный набор инструкций для создания старого классического толстого фляги, в которой все зависимости, включая зависимости JavaFX, объединены вместе.
Есть примечание, предупреждающее вас не использовать эту процедуру:
Предупреждение: это обескураживающий утомительный, подверженный ошибкам ручной процесс, которого следует избегать с помощью плагина Maven's shade или задачи jar Gradle, если jlink не применим.
После того, как вы получите толстый jar (он может быть кроссплатформенным), вы можете распространять его, и вашему пользователю нужно будет установить и запустить Java:
java -jar myFat.jar
Модульное приложение
Раздел Modular from CLI
охватывает модульные проекты JavaFX из командной строки и относится к использованию команды jlink
в терминах распространения, поскольку она создает пользовательский образ, который вы можете отправлять своим пользователям. Это не толстая банка, но она позволит вам отправить почтовый индекс вашему пользователю, который нужно только распаковать и запустить как:
hellofx/bin/java -m hellofx/hellofx.HelloFX
В этом случае вашему пользователю даже не нужно будет устанавливать Java.
И с небольшим количеством дополнительной работы вы также можете создать пакет, чтобы вы могли запустить:
hellofx
Однако, если вы все еще хотите сделать толстую банку с модульным приложением, вы все равно можете применить те же самые инструкции из немодульных приложений. В этом случае вам, вероятно, придется удалить файл module-info.java
, так как на данный момент это не имеет смысла.
Другие опции
У вас еще есть несколько вариантов распространения приложения.
Пользовательское изображение Java + JavaFX
Другой вариант, описанный в том же документе, раздел «Пользовательский образ JDK + образ JavaFX», объясняет, как создать свой собственный «JDK», включающий JavaFX. Затем вы создадите свой jar как обычно в Java 8 и сможете запустить его с:
/path/to/custom/java -jar myFat.jar
Обратите внимание, что уже есть некоторые дистрибутивы JDK, которые включают JavaFX, например, one .
JPackage
jpackage
инструмента еще нет, но есть ранний доступ: http://jdk.java.net/jpackage/,, который использует Java 13-internal. В существующей документации объясняется, какие параметры командной строки необходимы для создания пользовательского образа или установщика.
Обратите внимание, что вы все еще можете использовать JavaFX 11 или 12 с этим.
Инструменты сборки
И, наконец, вы все еще можете решить использовать инструменты сборки (Maven или Gradle), которые действительно помогут вам во многих отношениях. Смотрите любой из связанных вопросов выше.