无法使用JFX在Ubuntu上运行罐子



美好的一天,我正在尝试在Ubuntu虚拟机上运行一个名为graphdb-native-app-8.8.1-jfx.jar的程序。我已经安装了最新版本的Java,并确保将Java_home设置为正确的Java-version。

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 VM无论如何都找不到Javafx或认为未安装的Javafx。

我已经搜寻了类似问题的Stackoverflow,但是其中大多数是通过像我一样安装OpenJFX来解决的。其他人则从自己的.java文件开始,他们想编译并与JFX一起运行,并通过在https://openjfx.io/openjfx-docs/#install-javafx 中遵循指南来解决。

任何帮助都将不胜感激,谢谢

它缝合您的Java版本为11,Java的Javafx为Java 8尝试安装Java 8版本,然后再试一次。

openjfx软件包包含ubuntu 18.04中Java 8的Javafx库。仅在Ubuntu 18.10中包含Java的库11。

如果您的应用程序可以使用Java 8降级您的Java版本,并且您的问题应解决。

如果您需要使用Java 11运行应用程序,则可以关注您链接的指南,以安装Java 11:

  1. 在此处下载Javafx
  2. 将罐子提取到您选择的目录(例如/opt/javafx-sdk-11.0.2/
  3. 使用--module-path--add-modules选项运行JAR来指定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。但是我不建议仅出于这个原因。

最新更新