Использование OpenJDK и JavaFX для автономной модульной упаковки


РЕДАКТИРОВАТЬ: учебник, связанный в ответе на дублированный вопрос, помог мне преодолеть проблему, о которой я писал здесь. Я видел этот вопрос ранее, и в то время я не думал, что он применим. Но я ошибся и не знаю, как объяснить эту ошибку. Чтобы установить рабочую копию модульных OpenJDK и JavaFX, я согласен с тем, что учебное пособие "Начало работы" на http://openjfx.io/ является подходящим ресурсом. /РЕДАКТИРОВАТЬ


У меня есть относительно простой исходный код, который я хотел бы скомпилировать в Ubuntu. Код был разработан в Eclipse/Windows и использует JavaFX. Я надеялся просто скопировать текстовый источник и выполнить модульную компиляцию с конечной целью - создать автономную программу с использованием jlink для установки Linux. Код достаточно прост, поэтому команд командной строки javac (с опцией modules) и jlink вполне достаточно.

Я установил OpenJDK 10, полагая, что все будет в порядке, поскольку он содержит утилиту jlink и поддерживает модульное программирование.

> java -version
openjdk version "10.0.2" 2018-07-17
OpenJDK Runtime Environment (build 10.0.2+13-Ubuntu-1ubuntu0.18.04.4)
OpenJDK 64-Bit Server VM (build 10.0.2+13-Ubuntu-1ubuntu0.18.04.4, mixed mode)

Я могу запускать Java-банки с ним, но НЕ, если они требуют JavaFX.

> java -jar rnk.jar
Error: Could not find or load main class com.adonax.keyboard.LaunchKeyboard8
Caused by: java.lang.NoClassDefFoundError: javafx/application/Application

Сначала попытавшись разобраться с этим, я установил OpenJFX с помощью следующей команды:

sudo apt-get install OpenJFX

AFAIK, он установился нормально, но я не смог найти инструкции по тестированию или проверке установки ни в одном из сообщений Ask Ubuntu или StackOverflow, которые рекомендуют эту установку. Попытка запустить флягу, которая включает код JavaFX, все еще терпит неудачу, с той же самой ошибкой.

Использование OpenJDK 8 не является решением. Цель состоит в том, чтобы иметь возможность использовать командную строку javac и jlink, а Java 8 не поддерживает модули.

Я пытался избежать использования Oracle Java 9 или 10, как это было предложено во многих ответах, которые я исследовал, потому что, насколько я знаю, Oracle требует оплаты лицензии

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

Я надеюсь, что эти последние несколько строк оправдывают мой вопрос, который не будет помечен как "дублирующий вопрос".

Есть что-то более простое, что я упустил из виду?

0 ответов

Другие вопросы по тегам