Error: JavaFX runtime components are missing - JavaFX 11 and OpenJDK 11 and Eclipse IDE
Error: JavaFX runtime components are missing - JavaFX 11 and OpenJDK 11 and 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。
然后我将 JavaFX 11 SDK
中的 .jar
文件包含在 Eclipse IDE 的库包中。
然后我将这个库包包含到我的 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
中添加了这个
然后我尝试 运行
仍然有错误。
您的问题不在于编译项目,而是 运行 它。
由于您的 main
是在 Application
扩展中定义的,因此 运行 该项目在启动时需要在您的模块路径中使用 JavaFX。
因此,要么将您的 main
外包给不同于您的 Application
的 class,要么添加带有 VM 参数的 JavaFX 模块:
--module-path="<javafx-root>\lib" --add-modules="javafx.base,javafx.controls,..."
有关更多信息,请参阅 this。
这个问题很老了,但它在 intellij(linux) 中对我有用:
1- 转到 运行 -> 编辑配置
2- 在 VM 选项中添加路径:
--模块路径yourpath/lib--添加模块javafx.controls,javafx.fxml
在 eclipse 中,我从下拉列表中选择了这个 MODULE PATH 选项,它对我有用——我不需要 vm 工具。确保将 JavaFx Jar 添加到 Dependencies 选项卡下的 ModulePath 中(Eclipse >> Project >> Configurations)
我正在研究 Eclipse。对我来说,运行 具有以下 VM 参数的 class 有效:
-p C:\<your_path>\javafx-sdk-11\lib --add-modules javafx.controls,javafx.base,javafx.fxml,javafx.graphics,javafx.media,javafx.web --add-opens=javafx.graphics/javafx.scene=ALL-UNNAMED --add-exports javafx.base/com.sun.javafx.event=ALL-UNNAMED
-Djava.library.path="C:\<your_path>\javafx-sdk-11\bin"
我有这个经典问题:结合使用 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。
然后我将 JavaFX 11 SDK
中的 .jar
文件包含在 Eclipse IDE 的库包中。
然后我将这个库包包含到我的 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
然后我尝试 运行
仍然有错误。
您的问题不在于编译项目,而是 运行 它。
由于您的 main
是在 Application
扩展中定义的,因此 运行 该项目在启动时需要在您的模块路径中使用 JavaFX。
因此,要么将您的 main
外包给不同于您的 Application
的 class,要么添加带有 VM 参数的 JavaFX 模块:
--module-path="<javafx-root>\lib" --add-modules="javafx.base,javafx.controls,..."
有关更多信息,请参阅 this。
这个问题很老了,但它在 intellij(linux) 中对我有用:
1- 转到 运行 -> 编辑配置
2- 在 VM 选项中添加路径:
--模块路径yourpath/lib--添加模块javafx.controls,javafx.fxml
在 eclipse 中,我从下拉列表中选择了这个 MODULE PATH 选项,它对我有用——我不需要 vm 工具。确保将 JavaFx Jar 添加到 Dependencies 选项卡下的 ModulePath 中(Eclipse >> Project >> Configurations)
我正在研究 Eclipse。对我来说,运行 具有以下 VM 参数的 class 有效:
-p C:\<your_path>\javafx-sdk-11\lib --add-modules javafx.controls,javafx.base,javafx.fxml,javafx.graphics,javafx.media,javafx.web --add-opens=javafx.graphics/javafx.scene=ALL-UNNAMED --add-exports javafx.base/com.sun.javafx.event=ALL-UNNAMED
-Djava.library.path="C:\<your_path>\javafx-sdk-11\bin"