как создать распространяемый .jar с intelliJ JavaFX - PullRequest
0 голосов
/ 30 марта 2020

Прошло несколько дней с тех пор, как я пытался экспортировать очень простой проект, созданный в JavaFX, но у меня очень неприятная проблема: чтобы запустить jar, мне нужно открыть cmd, перейти в папку jdk и выполнить следующий код java --module-path %path_to_JavaFX_on_my_pc% --add modules=javafx.controls,javafx.fxml,javafx.graphics -jar %path_to_jar%, где я указываю на папку jfx на p c и добавляю необходимые модули для запуска jar.

запуск jar с использованием java java -jar %path_to_jar% приводит к следующей ошибке: Ошибка: отсутствуют компоненты среды выполнения JavaFX, которые необходимы для запуска этого приложения

Проект является модульным, с объявленной информацией модуля. java со следующим кодом:

module Timer {
requires java.prefs;
requires com.jfoenix;
requires javafx.base;
requires javafx.controls;
requires javafx.fxml;
requires javafx.graphics;
requires javafx.media;
requires javafx.web;
requires javafx.swing;
opens main;
exports main;
}

при экспорте артефакта я включаю все .jar, содержащиеся в javafx, так почему я должен указывать на него внешне?

image

Приложение работает хорошо, когда я запускаю его через IDE, мне даже не нужно было добавлять параметры виртуальной машины.

Моя цель - создать приложение, которое действительно может быть распределено, без каких-либо дополнительных знаний. основы для его запуска, нет кода jre, jdk, jfx, cmd и т. д. c ... просто дважды щелкните и готово.

Вопрос: как сгенерировать исполняемый файл, который можно открыть с 2 кликами, как и любое другое приложение на р c на * любой р c?

1 Ответ

0 голосов
/ 31 марта 2020

наконец-то я получил решение своей проблемы.

1 ° - Необходимо было решить проблему при создании артефакта java с использованием javaFx в intelliJ: В JDK 13 среда IDE выдавала следующую ошибку Невозможно создать артефакт - fx: развертывание недоступно в этом JDK самое простое решение для этого - вернуться к JDK 9, когда javaFx все еще был встроен, и все работало нормально. Сделав это, я смог сгенерировать артефакты .jar, которые работали без необходимости использования инструментов командной строки.

2 ° -Так что мне нужно было создать собственный исполняемый файл для моего приложения: В этом topi c есть превосходный список инструментов, которые создают средства запуска для java артефактов (идеально было конвертировать, но там немного сложнее). Для меня лучше всего работало Jsmooth , где я мог установить модуль запуска, встроенный в мой .jar, и куда я мог также прикрепить копию JRE для распространения на компьютерах без Java

Стоит отметить, что я разрабатываю настольные приложения только для себя и для некоторых своих друзей, они не работают с конфиденциальными данными и не требуют высокого уровня безопасности, и поэтому нет проблем с использованием старых Версия JDK, в любом другом случае, не рекомендуется этот подход.

Спасибо всем за вашу помощь.

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