我有一个经典的问题:使用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
。顺便说一下!如果你想知道的话,我用的是LubuntuLinux18.10。x1c 0d1x
然后,我将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
中添加了此内容
然后我尝试运行
仍然错误。
4条答案
按热度按时间ie3xauqp1#
问题不在于编译项目,而在于运行项目。由于
main
是在Application
-扩展中定义的,因此运行项目需要在启动时将JavaFX放在模块路径中。因此,要么将
main
外包到与Application
不同的类中,要么添加带有VM参数的JavaFX模块:更多信息请参见此。
sirbozc52#
这个问题是老问题了,但我在intellij(Linux)中确实遇到了这样的问题:
1-转到运行-〉编辑配置
2-在VM选项中添加路径:
--模块路径您的路径/lib --添加模块javafx.controls,javafx.fxml
zyfwsgd63#
在eclipse中我从下拉菜单中选择了这个MODULE PATH选项,它对我很有效--我不需要虚拟机参数。确保JavaFx Jars被添加到依赖项标签下的ModulePath中(Eclipse〉〉项目〉〉配置)
mzmfm0qo4#
我在Eclipse上工作,对我来说,用下面的VM参数运行类是有效的: