Как исправить «Ошибка: отсутствуют компоненты времени выполнения JavaFX, которые необходимы для запуска этого приложения» - PullRequest
1 голос
/ 05 июля 2019

Мое JavaFx приложение прекрасно работает из исходного кода, но когда я компилирую в один файл JAR, я получаю сообщение об ошибке:

Ошибка: отсутствуют компоненты времени выполнения JavaFX, инеобходимо запустить это приложение.

Я использую Maven в качестве менеджера хранилища, и моя установка с Maven прошла успешно.

Примечание: В моем Intellij артефакте сборки я вижу, что Intellij включает JavaFx и все его библиотеки

1 Ответ

0 голосов
/ 05 июля 2019

В Java 11 компоненты JavaFX были удалены в их собственный SDK, поэтому при запуске он не сможет найти их во время выполнения.

На странице JavaFX есть инструкции по ее запуску.: https://openjfx.io/openjfx-docs/#install-javafx

Короче говоря, вы должны скомпилировать / запустить, добавив модули javafx в качестве параметров, передаваемых в командной строке, или используя модульный проект.

Я обнаружил, чтомодульный проект с Maven и IntelliJ работал лучше всего для меня.https://openjfx.io/openjfx-docs/#IDE-Intellij

В модульном методе у вас есть файл module-info.java, который описывает все модули, которые «требует» ваш проект, и позволяет «открывать» их для других модулей.Если у вас есть куча зависимостей Maven, вы должны добавить их и в список требований.(IntelliJ может упростить эту задачу - найдите в коде ошибку о том, что нет необходимости, и alt-enter)

После того, как все работало с модулями и т. Д., Мне пришлось создать Fat Jar, используя плагин для оттенков Maven.собрать все вместе.Тогда он будет работать, запустив jar из командной строки.

Однако после того, как мой код Java 11 @ # $% @ # заработал после 2 дней боли, я вернулся к Java 8 (используя для исправления SDKпоследняя версия), поскольку в Java 11 нет упаковки, а IntelliJ не может сделать это за вас.

...