首页 > 解决方案 > 如何让 JavaFX 和 Java 11 在 IntelliJ IDEA 中工作

问题描述

在最近的 Java 11 版本中,JavaFX 不再包含在 JDK 中。我有一个现有的 JavaFX 项目。我有兴趣学习如何将它从 Java 10 项目更改为 Java 11。我确定我已正确安装 Java 11,并且我能够将默认 SDK 从 Java 10 更改为 Java 11。我不知道知道如何让 JavaFX 与 Java 11 一起工作。

我在这里下载了最新的 JavaFX 版本。我已将它提取到包含我的其他 JDK 的 Java 文件夹中,但此时我真的不知道该怎么做。我已经阅读了一些描述如何使用 Maven 或 Gradle 连接项目的冗长指南,但我从未使用过这些。有没有办法在 IntelliJ 菜单中添加 JavaFX 支持?

标签: intellij-ideajavafxinstallationgluonjava-11

解决方案


为您的操作系统下载适当的 JavaFX SDK 并将其解压缩到所需位置,例如 /Users/your-user/Downloads/javafx-sdk-11。

  1. 创建 JavaFX 项目

在此处输入图像描述

创建 JavaFX 项目 为项目提供名称(如 HelloFX)和位置。项目打开时,无法识别 JavaFX 类。 在此处输入图像描述

  1. 设置 JDK 11

转到文件->项目结构->项目,并将项目SDK设置为11。您也可以将语言级别设置为11。设置JDK 11 在此处输入图像描述

  1. 创建库

转到文件 -> 项目结构 -> 库并将 JavaFX 11 SDK 作为库添加到项目中。指向 JavaFX SDK 的 lib 文件夹。 在此处输入图像描述

应用该库后,IDE 将识别 JavaFX 类。 在此处输入图像描述

警告:如果您现在运行该项目,它将编译但您将收到此错误:

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

由于 Java 11 启动器检查主类是否扩展 javafx.application.Application,因此会显示此错误。如果是这种情况,则需要在模块路径上有 javafx.graphics 模块。

  1. 添加虚拟机选项

要解决此问题,请单击 Run -> Edit Configurations... 并添加以下 VM 选项:

--module-path %PATH_TO_FX% --add-modules=javafx.controls,javafx.fxml

请注意,IntelliJ 创建的默认项目使用 FXML,因此需要 javafx.fxml 和 javafx.controls。如果您的项目使用其他模块,您也需要添加它们。 在此处输入图像描述 单击应用并关闭对话框。

  1. 运行项目

单击 Run -> Run... 运行项目,现在它应该可以正常工作了。

详细资源: https ://www.jetbrains.com/help/idea/javafx.html


推荐阅读