错误:缺少JavaFX运行时组件,需要使用JDK 11运行此应用程序。

124

我正在尝试使用IntelliJ运行JavaFX示例项目,但它会出现以下异常:

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

我已经在这里下载了JDK 11:http://jdk.java.net/11/

我已经在这里下载了OpenJFX:http://jdk.java.net/openjfx/

我正在使用:IntelliJ IDEA 2018.2(Community Edition)Build #IC-182.3684.40,建于2018年7月17日,JRE:1.8.0_152-release-1248-b8 amd64 JVM:JetBrains s.r.o的OpenJDK 64位服务器VM Windows 10 10.0

我在IntelliJ中使用JDK 11创建了一个新的JavaFX项目。但是我的JavaFX类未被识别,所以我通过以下方式添加了OpenJFX库:

  • 文件->项目结构->模块->+->库->Java

我将OpenJFX添加到了"classes"下面的8个jar文件、"Sources"下面的文件夹和"Native Library Locations"下面bin文件夹的路径中。

项目构建成功,但无法运行。

我做错了什么?


6
请看这个入门指南,了解编译和运行示例所需的所有配置。还要注意,您可以直接从Maven Central添加JavaFX依赖项。 - José Pereda
知道就好了。现在所有的都是 EA(预览版),但如果你能从你的 IDE 运行模块,你应该能够配置项目来运行它。你试过使用 pom.xml 吗? - José Pereda
在Eclipse上,有一个类似的问题(略有不同的上下文):为已安装的JRE添加--module-path和--add-module作为VM参数可以帮助解决问题。 - kleopatra
@kleopatra 如果您将它们放在类路径上而不是模块路径上(在非模块化项目中),会怎样呢? - user1803551
1
最近我在IntelliJ中使用Java 17应用程序时遇到了这个问题。我注意到,如果您通过添加module-info文件使应用程序成为模块化的,问题就会消失。 - Zach
显示剩余4条评论
1个回答

108

以下方法适用于我:

文件 >> 项目结构 >> 模块 >> 依赖 >> +(窗口左侧)

点击“+”符号将允许您指定JavaFX“lib”文件夹的解压目录。

作用域为编译(默认值)。 接着您可以通过双击此行来将其命名为JavaFX。

然后在:

运行 >> 编辑配置

在VM选项中添加此行:

--module-path /path/to/JavaFX/lib --add-modules=javafx.controls

(哦,不要忘记设置SDK)


10
JavaFX 11不再与JDK捆绑在一起,它是基于JDK 11构建的独立组件。请观看此视频以了解如何集成它们 https://www.youtube.com/watch?v=qn2tbftFjno您需要在此处下载独立的JavaFx >>>> https://gluonhq.com/products/javafx/干杯 - Tonnie
1
@Fanadez 视频中包含了精确的步骤,实际上非常棒! - Zeeng
1
如果您使用Eclipse,请确保在使用SWT启动时也禁用()Use the -XstartOnFirstThread参数,否则将无法处理使用JavaFX的努力。 :) - mZed
18
使用参数--add-modules=javafx.controls出现了java.lang.module.FindException: Module javafx.controls not found的错误。 - Lei Yang
4
--module-path /path/to/JavaFX/lib --add-modules=javafx.controls,javafx.fxml 如果您正在使用fxml,则只需添加javafx.fxml - Kidus Tekeste
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接