How to get JavaFX and Java 11 working in IntelliJ IDEA
在最近的Java 11版本中,JavaFX不再包含在JDK中。 我有一个现有的JavaFX项目。 我有兴趣学习如何将其从Java 10项目更改为Java11。我确定我已正确安装了Java 11,并且能够将默认的SDK从Java 10更改为Java 11。 我知道如何使JavaFX与Java 11协同工作。
我在这里下载了最新的JavaFX版本。 我已经将其提取到包含其他JDK的Java文件夹中,但是我现在真的不知道该怎么办。 我读了一些冗长的指南,描述了如何使用Maven或Gradle连接项目,但是我从未使用过。 有没有办法在IntelliJ菜单中添加JavaFX支持?
下载适合您的操作系统的JavaFX SDK,并将其解压缩到所需的位置,例如/ Users / your-user / Downloads / javafx-sdk-11。
创建一个JavaFX项目为该项目提供一个名称,例如HelloFX,并提供一个位置。当项目打开时,无法识别JavaFX类。
转到文件->项目结构->项目,并将项目SDK设置为11。您还可以将语言级别设置为11。设置JDK 11
转到文件->项目结构->库,然后将JavaFX 11 SDK作为库添加到项目中。指向JavaFX SDK的lib文件夹。
应用该库后,IDE将识别JavaFX类。
警告:如果现在运行该项目,它将编译,但会出现此错误:
Error: JavaFX runtime components are missing, and are required to run
this application
由于Java 11启动器检查主类是否扩展了javafx.application.Application,因此显示了此错误。如果是这种情况,则需要在模块路径上具有javafx.graphics模块。
要解决此问题,请单击运行->编辑配置...,然后添加以下VM选项:
--module-path %PATH_TO_FX% --add-modules=javafx.controls,javafx.fxml
请注意,由IntelliJ创建的默认项目使用FXML,因此javafx.fxml和javafx.controls一起是必需的。如果您的项目使用其他模块,则还需要添加它们。

单击应用并关闭对话框。
单击运行->运行...以运行项目,现在它可以正常运行了。
您可以从https://www.azul.com/downloads/zulu/zulufx/下载包含JavaFX的Java版本。在这种情况下,无需进行特殊设置即可在Java 11上运行JavaFx应用程序。JavaFX的运行方式与Java 8相同。