我有一个 Java FX 项目,并使用以下 Azul Zulu Build of OpenJDK with JavaFX 将项目升级到 JDK 17
https://www.azul.com/downloads/?os=windows&package=jdk-fx
有谁知道为什么 Intellij 找不到使用来自 Azul Zulu Builds of OpenJDK with FX 的 JDK 17 的 JavaFX 包?
我有一个 Java FX 项目,并使用以下 Azul Zulu Build of OpenJDK with JavaFX 将项目升级到 JDK 17
https://www.azul.com/downloads/?os=windows&package=jdk-fx
有谁知道为什么 Intellij 找不到使用来自 Azul Zulu Builds of OpenJDK with FX 的 JDK 17 的 JavaFX 包?
我提供两种解决方案:
使用包含 JavaFX 模块的 Azul 发行版(这是您所要求的),
使用不包含 JavaFX 的 Azul 发行版,并使用构建工具从 Maven Central 使用 JavaFX 模块。
我推荐使用构建工具的解决方案 2。它的设置速度更快,并且为未来的开发工作提供了更便携、灵活和可扩展的方法。
备用 JDK
这些说明也应该适用于其他 JDK 和 JavaFX 发行版,例如由 Belsoft Liberica、Amazon Correto 和 Eclipse Temurin 打包的发行版。
要为 JDK 使用替代供应商,请选择从所选供应商处下载适当的版本,或者:
解决方案 1:使用带有内置 JavaFX 模块的 Azul 发行版
下载 Azul JDK:
这是我的基于 Intel 的 Mac 版本的链接,但您的链接可能因系统架构而异:
创建一个 Java 项目(不是新的 JavaFX 项目):
文件 | 新项目... | 爪哇
项目SDK | 添加 JDK...
选择您已使用 JavaFX 下载的 Azul JDK 解压缩的位置。
保留默认选项,选择 Next 几次。
为项目命名并选择完成。
创建一个 JavaFX HelloWorld.java 类:
右键单击 src,选择新建 | JavaFX 应用程序。
将其命名为 HelloWorld。
将 HelloWorld 应用程序的内容编辑为:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.stage.Stage;
public class HelloWorld extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
primaryStage.setScene(new Scene(new Button("hello, world")));
primaryStage.show();
}
}
使用 Azul JDK + JavaFX 运行时在 IDE 中运行新的 JavaFX 应用程序:
故障排除
如果您执行上述操作并且找不到 JavaFX 类,则您可能没有使用包含 JavaFX 的 JDK。
在这种情况下,除非您将 JDK 版本更改为包含 JavaFX 的版本,否则您应该从openjfx.io下载 JavaFX SDK并按照此处提供的 Idea 项目设置信息进行操作。
解决方案 2:使用 Azul,但从 Maven Central 获取 JavaFX 模块
下面的解决方案是使用 Azul 运行时和使用 Maven(或 Gradle)从 Maven 中央存储库中获取的 JavaFX 模块。
如果您想使用 Azul 下载和添加步骤,而不是在 IDE 设置中用于新 Java 项目的默认 JDK,则只需执行此步骤即可。
使用 Azul JDK 运行时和 Maven JavaFX 模块在 IDE 中运行新的 JavaFX 应用程序: