java.lang.NoClassDefFoundError: javafx/application/Application

ker*_*000 14 java openjdk javafx 19.04

我按照此处所述安装了 OpenJDK-11 。我跑了sudo apt install openjfx

我的Java版本:

$ java -version
openjdk version "11.0.3" 2019-04-16
OpenJDK Runtime Environment (build 11.0.3+7-Ubuntu-1ubuntu1)
OpenJDK 64-Bit Server VM (build 11.0.3+7-Ubuntu-1ubuntu1, mixed mode, sharing)
Run Code Online (Sandbox Code Playgroud)

但我仍然得到ava.lang.NoClassDefFoundError: javafx/application/Application这表明 jre 找不到 FX 类。

小智 7

您收到此错误是因为您的运行时 PATHjavafx可能不正确或丢失。

请按照以下步骤操作:

检查JavaFX的路径。(例如:/usr/share/openjfx/lib/

然后运行命令:

java --module-path $FX-PATH --add-modules javafx.controls -jar sample.jar
Run Code Online (Sandbox Code Playgroud)

where$FX-PATH应该设置或替换为提到的 JavaFX 路径。

如果需要添加更多模块,可以在--add-modules参数中指定。
( --add-modules javafx.controls,javafx.fxml)

  • 您可能需要向命令添加更多的 FX 模块才能在没有错误的情况下运行,例如 `--add-modules javafx.controls,javafx.fxml,javafx.graphics`。据我所知,您可以从下载的“javafx-sdk”的“legal”文件夹的结构中看到可用模块的列表。 (2认同)

小智 4

Java FX 不再与 Java 运行时打包在一起。您必须使用 JavaFX 运行时下载并打包 Jar,请参阅https://openjfx.io/openjfx-docs/以了解如何最好地启动和运行它。