Как вы упаковываете JavaFX вexe-файл, созданный Launch4j?

#java #javafx #launch4j

#java #javafx #launch4j

Вопрос:

Я пытаюсь создать приложение JavaFX, но я не могу найти способ объединить jar-файлы JavaFX в EXE-файл, созданный Launch4j. Есть ли способ сделать это?

На данный момент у меня есть EXE-файл и дистрибутив OpenJFX 14 и OpenJDK 14 в одной папке с параметрами пути JRE и виртуальной машины, как указано в документации OpenJFX.

Я использую OpenJDK 14.0.1 с открытым JavaFX 14.0.2.

Комментарии:

1. JavaFX — это больше, чем просто набор файлов jar; он также использует собственные графические компоненты. Вы не можете (*) просто включить файлы jar в свое приложение и заставить его работать. Вам нужно создать JVM, в который включен JavaFX, а затем использовать эту JVM для создания собственного пакета .exe. Инструмент jlink, включенный в Java11 и более поздние версии, сделает это ( документы ). Обратите внимание, что вы также можете использовать jpackage вместо Launch4j для сборки собственного пакета; это фактически запустит jlink для вас.

2. (*) Очевидно, есть некоторые хаки, которые заставят его работать, если вы просто включите JavaFX jar, но вам настоятельно рекомендуется не полагаться на них.

3. Мне интересно, почему мы должны отвечать на этот же вопрос снова и снова примерно каждые 24 часа.

4. @James_D, спасибо за информацию. Я попробую это!

5. @mipa Я не видел этот вопрос на этом форуме в этой конкретной форме, вот почему я спросил. Если бы я видел другой подобный файл, я бы использовал его.

Ответ №1:

Вы можете попробовать извлечь необходимую библиотеку из сгенерированного jar при создании runnable

Выберите вариант, подобный этому:

Обработка библиотеки

После этого выполните простые launch4j шаги для создания .exe