【发布时间】:2023-03-21 06:28:01
【问题描述】:
美好的一天,
我正在尝试在 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]
然而,每当我尝试运行 jar 时,我都会收到以下错误:
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 或认为它没有安装。
我已经在 stackoverflow 上搜索过类似的问题,但大多数问题都可以通过像我一样安装 openjfx 来解决。其他人从他们自己的 .java 文件开始,他们想用 jfx 编译和运行,并按照https://openjfx.io/openjfx-docs/#install-javafx中的指南解决
任何帮助将不胜感激,在此先感谢
【问题讨论】:
-
如果
graphdb-native-app-8.8.1-jfx.jar设计为在 8 上运行,您需要 Java 8 并为其安装 JavaFX 8(例如,如果您使用 OpenJDK 8),如以下答案中所建议的那样。如果您使用 Java 11,则需要 JavaFX 11,并且可以按照您发布的链接中的说明安装它,但是您需要在命令行中使用module-path和add-module参数运行(请参阅引用链接的结尾)。
标签: java ubuntu javafx jar ubuntu-18.04