Использование 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 и совершенно запутался в том, что делать дальше. Усиление опыта, необходимого для создания, как в этой статье, было бы большим скачком.
Я надеюсь, что эти последние несколько строк оправдывают мой вопрос, который не будет помечен как "дублирующий вопрос".
Есть что-то более простое, что я упустил из виду?