intellij-idea - 如何让 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 支持?
解决方案
为您的操作系统下载适当的 JavaFX SDK 并将其解压缩到所需位置,例如 /Users/your-user/Downloads/javafx-sdk-11。
- 创建 JavaFX 项目
创建 JavaFX 项目 为项目提供名称(如 HelloFX)和位置。项目打开时,无法识别 JavaFX 类。
- 设置 JDK 11
转到文件->项目结构->项目,并将项目SDK设置为11。您也可以将语言级别设置为11。设置JDK 11
- 创建库
转到文件 -> 项目结构 -> 库并将 JavaFX 11 SDK 作为库添加到项目中。指向 JavaFX SDK 的 lib 文件夹。
警告:如果您现在运行该项目,它将编译但您将收到此错误:
错误:缺少 JavaFX 运行时组件,需要运行此应用程序
由于 Java 11 启动器检查主类是否扩展 javafx.application.Application,因此会显示此错误。如果是这种情况,则需要在模块路径上有 javafx.graphics 模块。
- 添加虚拟机选项
要解决此问题,请单击 Run -> Edit Configurations... 并添加以下 VM 选项:
--module-path %PATH_TO_FX% --add-modules=javafx.controls,javafx.fxml
请注意,IntelliJ 创建的默认项目使用 FXML,因此需要 javafx.fxml 和 javafx.controls。如果您的项目使用其他模块,您也需要添加它们。 单击应用并关闭对话框。
- 运行项目
单击 Run -> Run... 运行项目,现在它应该可以正常工作了。
推荐阅读
- python - Numpy IndexError:索引 1 超出轴 0 的范围,大小为 1
- xaml - 如何从代码访问位于合并字典中的资源
- perforce - perforce 工作区命令行
- mongodb - 是否可以在 MongoDB 中对文本索引进行预排序?
- google-sheets - 将工作表连接到 BigQuery
- google-cloud-platform - MQTT 谷歌云连接与 ESP8266
- python - TypeError:只有长度为 1 的数组可以转换为 Python 标量,为什么?
- hibernate - 如何从默认 Hibernate 切换到 Hibernate OGM
- ubuntu - 如何在 Ubuntu 上设置项目环境以与肥皂网络服务交互?
- android - ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS :需要意向所有应用列表