Не могу запустить JAR на Ubuntu с JFX - PullRequest
1 голос
/ 14 марта 2019

Добрый день, я пытаюсь запустить программу под названием graphdb-native-app-8.8.1-jfx.jar на виртуальной машине с Ubuntu.У меня установлена ​​последняя версия java, и я убедился, что для JAVA_HOME задана правильная java-версия.

java -version
java version "11.0.2" 2019-01-15 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.2+9-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.2+9-LTS, mixed mode)

Я также использовал sudo apt-get install openjfx для получения JavaFX (а также для libopenjfx-java)и удостоверился, что это новейшая версия, выполнив поиск обновлений:

sudo apt list --installed| grep jfx
libopenjfx-java/bionic,now 8u161-b12-1ubuntu2 all [installed] 
libopenjfx-jni/bionic,now 8u161-b12-1ubuntu2 amd64 [installed]
openjfx/bionic,now 8u161-b12-1ubuntu2 amd64 [installed]

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

sudo /usr/lib/jvm/java-11-openjdk-amd64/bin/java -jar ./graphdb-native-app-8.8.1-jfx.jar
Error: Could not find or load main class com.ontotext.graphdb.free.GraphDBFree
Caused by: java.lang.NoClassDefFoundError: javafx/application/Application

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

Я просмотрел stackoverflow для похожих вопросов, но большинство из них решается путем установки openjfx, как и я.Другие начинают со своих собственных файлов .java, которые они хотят скомпилировать и запустить с помощью jfx, и решаются, следуя инструкциям в https://openjfx.io/openjfx-docs/#install-javafx

Любая помощь будет принята с благодарностью, заранее спасибо

Ответы [ 2 ]

2 голосов
/ 14 марта 2019

кажется, что ваша версия java 11, и javafx для java 8 пытается установить версию java 8, а затем, возможно, попытается снова.

1 голос
/ 14 марта 2019

Пакет openjfx содержит библиотеки javafx для Java 8 в Ubuntu 18.04.Только из Ubuntu 18.10 пакет содержит библиотеки для Java 11. (см. https://packages.ubuntu.com/search?keywords=openjfx)

Если ваше приложение может работать с Java 8, понизьте версию Java и ваша проблема должна быть решена.

Если вам нужно запустить приложение с Java 11, вы можете следовать руководству , которое вы указали для установки JavaFX для Java 11:

  1. Загрузить JavaFX здесь
  2. Извлеките баночки в каталог по вашему выбору (например, /opt/javafx-sdk-11.0.2/)
  3. Запустите вашу банку с опцией --module-path и --add-modules, чтобы указать расположение JavaFX:

    java -jar --module-path /opt/javafx-sdk-11.0.2/lib --add-modules=javafx.controls,javafx.fxml graphdb-native-app-8.8.1-jfx.jar
    

Последний вариант - обновить всю систему до Ubuntu 18.10. Но я бы не советовал делать это только по этой причине.

...