我在运行cli界面时出错:缺少JavaFX运行时组件,运行此应用程序需要这些组件

我在运行cli界面时出错:缺少JavaFX运行时组件,运行此应用程序需要这些组件,java,javafx,Java,Javafx,我用Intellij开发了一个javafx应用程序。问题是,当我通过Intellij运行程序时,它没有问题,而如果我通过命令行或双击运行,程序就不会运行 错误:缺少JavaFX运行时组件,需要这些组件才能运行此应用程序。从Java11开始,JavaFX不是JDK的一部分。你必须自己添加它 您还必须创建一个单独的类来保存main方法。它可以是任何不扩展JavaFX类的类。这是因为JavaFX加载本机库,而本机库路径在Java启动主类的阶段不可用 如果您的程序是模块,则只需将JavaFXSDK添加到

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


错误:缺少JavaFX运行时组件,需要这些组件才能运行此应用程序。从Java11开始,JavaFX不是JDK的一部分。你必须自己添加它

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

如果您的程序是模块,则只需将JavaFXSDK添加到模块路径:

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。它可以而且应该调用。

您使用哪种JRE?找到一些不包含JavaFX的.java版本“12.0.2”,您是否单独安装了它?如果没有,请这样做。。。我真的不知道该配置什么,因为我上次的JavaFX体验是在JDK和JRE包含JavaFX时。我认为您必须在您的操作系统中为它设置一条路径。或者如果IntelliJ中可能的话,可以使用OpenJFX进行编译。我已经安装了OpenJFX。事实上,如果我通过Intellij运行程序,它运行得非常好。问题是如果我双击它或者通过cli运行它