我在运行 cli 界面时遇到错误:JavaFX 运行时组件丢失,需要这些组件才能运行此应用程序



我用Intellij开发了一个javafx应用程序。问题是,当我通过Intellij运行程序时,它没有问题,而如果我通过命令行运行或只是双击,程序无法运行

错误:JavaFX 运行时组件丢失,运行此应用程序需要这些组件

从Java 11开始,JavaFX不是JDK的一部分。 您必须自己添加它。

您还必须创建一个单独的类来保存您的 main 方法。 它可以是不扩展 JavaFX 类的任何类。 这是因为 JavaFX 加载本机库,并且在 Java 启动主类的阶段本机库路径不可用。

如果您的程序是一个模块,您只需将 JavaFX SDK 添加到模块路径中:

java -p /home/sette/projects/example/build:/opt/javafx-jmods-12 
    -m com.example.myapp/com.example.myapp.Startup

(如果在 Windows 上运行,请将/替换为 ,并将:替换为 ;

如果您的程序不是模块,则需要同时包含.jar文件和本机库:

java -cp /home/sette/projects/example/build/MyApp.jar:/opt/javafx-sdk-12/lib/"*" 
    -Djava.library.path=/opt/javafx-sdk-12/lib 
    com.example.myapp.Startup

同样,主类(在上面的例子中Startup(不能扩展javafx.application.Application。 它可以并且应该调用 Application.launch。

最新更新