TornadoFX _ Kotlin _ IntelliJ IDEA: Как это возможно, что я получаю «Неразрешенную ссылку: javafx», поскольку я использую openJDK 8 в своем проекте? - PullRequest
0 голосов
/ 26 мая 2020

Я пытаюсь начать с Kotlin и TornadoFX.

Я загрузил Java jdk8u252-b09 и установил его в качестве SDK моего проекта. См. Следующее изображение:

enter image description here

Я видел этот пост , который сообщает нам, что Неразрешенная ссылка: javafx * Ошибка 1016 * связана с фактом запуска версии Java выше или равной v11 без импорта JavaFX в проект. Я читал, что v8 из Java поставляется со встроенным JavaFX. И в моем проекте, как я уже сказал, я использую Java 1.8 как SDK. Так что этой проблемы следует избегать. * как на следующем изображении:

enter image description here

Единственное место, где, как я вижу, могут быть проблемы c, - это программное обеспечение, работающее на моей машине. Когда я запускаю java --version в терминале linux, он возвращает мне:

openjdk 11.0.7 2020-04-14

Поскольку я в Debian Buster кажется, что openjdk 11 - самая старая версия, поддерживаемая версией ОС. Итак, если проблема связана с openjdk, установленным в системе, мне интересно, есть ли какое-либо обходное решение, кроме запуска виртуальной машины. Также я бы подумал, что SDK, установленный в IntelliJ IDEA, преодолеет версию Java, установленную в моей системе в контексте моего проекта, что предотвратит установку программного обеспечения на моем компьютере, чтобы вызвать какие-либо проблемы с запуском моего проекта.

Так как же мой баг возможен? Что я могу сделать, чтобы это исправить?

Ответы [ 2 ]

0 голосов
/ 28 мая 2020

Я обнаружил, что большинство OpenJDK8 не включают JavaFX. Я знаю два, которые делают, что вы можете попытаться упростить будущие обновления:

  • Zulu : вы должны выбрать «JDK FX» в раскрывающемся списке Java Package
  • Liberica : Вы должны выбрать «Полный JDK»

Liberica предоставляет сборки для Raspberry Pi и множества других архитектур. Если вам это нужно, Либерика - это путь к go.

0 голосов
/ 27 мая 2020

Фактически в сборке OpenJDK8, которую я загрузил, jfxrt.jar отсутствовал.

Итак, я загрузил только jfxrt.jar и включил его в свою папку /jdk8u252-b09/jre/lib/ext/.

Затем консоль вернула мне, что инструментарий отсутствует.

Итак, в /jdk8u252-b09/ я только что полностью заменил исходный jre из jdk8u252-b09 на тот, который предоставлен https://java.com/en/download/linux_manual.jsp.

В этом случае убедитесь, что в структуре вашего проекта, в части «Модуль» -> вкладка «Зависимости», ваши зависимости указывают на соответствующую папку [спасибо DoombringerBG].

То же самое для SDK вашего проекта, убедитесь, что он обновлен.

Что касается вашей библиотеки, она должна быть в порядке из-за включения JavaFX в дерево папок Java8.

Одним словом, убедитесь, что ваш проект обновлен, заменив вашу папку jre .

Теперь мой проект работает нормально.

...