Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
错误:缺少JavaFX运行时组件—JavaFX11和OpenJDK 11以及Eclipse IDE_Java_Eclipse_Javafx_Javafx 11_Gluon Desktop - Fatal编程技术网

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

错误:缺少JavaFX运行时组件—JavaFX11和OpenJDK 11以及Eclipse IDE,java,eclipse,javafx,javafx-11,gluon-desktop,Java,Eclipse,Javafx,Javafx 11,Gluon Desktop,我有一个经典的问题:将JavaFX11与OpenJDK11一起使用,并与EclipseIDE一起使用 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

我有一个经典的问题:将JavaFX11与OpenJDK11一起使用,并与EclipseIDE一起使用

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:~$ 
我还有
javafx11sdk
。顺便说一句如果你想知道的话,我正在使用Lubuntu Linux 18.10。

然后,我将EclipseIDE中的
JavaFX11SDK
中的
.jar
文件包含到一个库包中

然后我将这个库包包含到我的
JAdaptiveMPC
项目中。

我的代码语法没有错误,但仍然无法编译我的项目。

你知道为什么吗?如果我从Maven导入所有那些
.jar
文件,而不是下载
JavaFXSDK
并将其导入库中,则会出现相同的错误

<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>

4.0.0
控制

然后我试着跑


仍然存在错误。

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

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

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

有关更多信息,请参阅。

这个问题很老,但这是我在intellij(linux)中的工作原理:

1-转到运行->编辑配置

2-在VM选项中添加路径:


--模块路径yourpath/lib——添加模块javafx.controls,javafx.fxml

Duplicated of:如果您将项目作为Java应用程序运行,还需要添加VM参数。请参阅(IDE中的非模块化)。如果您使用Maven,也可以查看Maven部分。我现在已经这样做了。仍然是错误。我不知道为什么@JoséPeredearrors:与JavaFX“11”无关,但与JavaFX本身和FXML有关:您到FXML文件的路径是错误的。只需参考resources文件夹的根目录,如
getResources(“/se/danielmartensson/controller/gui.fxml”)
。另一方面,在发布问题时,代码比截图更受欢迎。现在@JoséPereda的效果非常好。我知道代码比屏幕短片更优秀,但对于不知道如何解决这个问题的初学者来说,屏幕截图比代码更有价值。您好!谢谢你的回答。但我已经做到了。请回答我最新的问题。@异端对不起,我已经仔细检查了你的帖子。显然您正在调用
fxmloader.setLocation​(URL)
,但显然找不到您的资源(
\JAdaptiveMPC…\gui.fxml
)。因此,请检查您的位置是否正确,并且
Main.class.getResource(…)
不会返回
null
@Reizo请您解释一下如何按照您在回答中所述:“添加带有VM参数的JavaFX模块”。我也遇到了同样的问题,到目前为止一直没有成功地纠正它。感谢you@TrixietheCat使用
java
启动程序时,必须传递给定的参数。通常您的IDE会在幕后完成这项工作,并允许您配置要传递给VM的参数。请参阅示例或了解如何在Eclipse/IntelliJ/中指定vm参数。。。。