错误:缺少 JavaFX 运行时组件 - JavaFX 11 和 OpenJDK 11 以及 Eclipse IDE

新手上路,请多包涵

我有这个经典问题:将 JavaFX 11 与 OpenJDK 11 与 Eclipse IDE 一起使用。

 Error: JavaFX runtime components are missing, and are required to run this application

我有 OpenJDK 11.0.2

 dell@dell-pc:~$ java -version
openjdk version "11.0.2" 2019-01-15
OpenJDK Runtime Environment 18.9 (build 11.0.2+9)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+9, mixed mode)
dell@dell-pc:~$

我还有 JavaFX 11 SDK 。顺便一提!如果您想知道,我正在使用 Lubuntu Linux 18.10。 在此处输入图像描述

然后我将 Eclipse IDE 中来自 JavaFX 11 SDK.jar 文件包含到一个库包中。

在此处输入图像描述

然后我将这个库包包含到我的 JAdaptiveMPC 项目中。 在此处输入图像描述

我的代码语法没有错误,但仍然无法编译我的项目。 在此处输入图像描述

你知道为什么吗?如果我从 Maven 导入所有这些 .jar 文件而不是下载 JavaFX SDK 并将其导入到库中,我会遇到同样的错误。

 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>Control</groupId>
  <artifactId>JAdaptiveMPC</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <dependencies>
    <dependency>
        <groupId>org.openjfx</groupId>
        <artifactId>javafx</artifactId>
        <version>13-ea+5</version>
        <type>pom</type>
    </dependency>
    <dependency>
        <groupId>org.openjfx</groupId>
        <artifactId>javafx-base</artifactId>
        <version>13-ea+5</version>
    </dependency>
    <dependency>
        <groupId>org.openjfx</groupId>
        <artifactId>javafx-controls</artifactId>
        <version>13-ea+5</version>
    </dependency>
    <dependency>
        <groupId>org.openjfx</groupId>
        <artifactId>javafx-graphics</artifactId>
        <version>13-ea+5</version>
    </dependency>
    <dependency>
        <groupId>org.openjfx</groupId>
        <artifactId>javafx-swing</artifactId>
        <version>13-ea+5</version>
    </dependency>
    <dependency>
        <groupId>org.openjfx</groupId>
        <artifactId>javafx-web</artifactId>
        <version>13-ea+5</version>
    </dependency>
    <dependency>
        <groupId>org.openjfx</groupId>
        <artifactId>javafx-media</artifactId>
        <version>13-ea+5</version>
    </dependency>
    <dependency>
        <groupId>org.openjfx</groupId>
        <artifactId>javafx-fxml</artifactId>
        <version>13-ea+5</version>
    </dependency>
  </dependencies>
</project>

继续

我在 Run Configuration 添加了这个

在此处输入图像描述

然后我试着跑 在此处输入图像描述

还是错误。

原文由 Heretic 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.5k
2 个回答

您的问题不是编译项目,而是运行它。由于您的 main 是在您的 Application 扩展中定义的,因此运行该项目将需要在启动时在您的模块路径中使用 JavaFX。

因此,要么将您的 main 外包到与您的 Application 不同的类中,要么添加带有 VM 参数的 JavaFX 模块:

 --module-path="<javafx-root>\lib" --add-modules="javafx.base,javafx.controls,..."

请参阅 以获取更多信息。

原文由 Reizo 发布,翻译遵循 CC BY-SA 4.0 许可协议

在此处输入图像描述

在 eclipse 中,我从下拉列表中选择了这个 MODULE PATH 选项,它对我有用——我不需要 vm agruments。确保将 JavaFx Jars 添加到 Dependencies 选项卡下的 ModulePath 中(Eclipse >> Project >> Configurations)

原文由 Abdeali Chandanwala 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题