使用带有 FX 的 OpenJDK 的 Azul Zulu Builds 将 JavaFX 项目升级到 JDK 17 后,为什么 IDEA 找不到 JavaFX 包?

mid*_*007 5 javafx intellij-idea azul-zulu openjdk-17

我有一个 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 包吗?

jew*_*sea 2

我提供两种解决方案:

  1. 使用包含 JavaFX 模块的 Azul 发行版(这正是您所要求的),

  2. 使用不包含 JavaFX 的 Azul 发行版,并通过构建工具使用 Maven Central 中的 JavaFX 模块。

我推荐使用构建工具的解决方案 2。它的设置速度更快一些,并且为未来的开发工作提供了更便携、灵活和可扩展的方法。

替代 JDK

这些说明也应该可以完美地适用于其他 JDK 和 JavaFX 发行版,例如 Belsoft Liberica、Amazon Correto 和 Eclipse Temurin 打包的发行版。

要使用 JDK 的替代供应商,请选择从所选供应商处下载适当的版本:

  1. 手动使用添加 JDK 选项,如下所述,或者
  2. 自动让 Idea 从您选择的供应商执行下载(使用“下载 JDK”选项,如下所述)。

解决方案 1:使用带有内置 JavaFX 模块的 Azul 发行版

下载 Azul JDK:

  1. 转到 Azul 下载站点,选择适当的版本、平台和包(使用 JDK FX 作为包而不是 JDK
  1. 将下载的包解压到您计算机上的某个位置。

创建一个 Java 项目不是新的 JavaFX 项目):

  1. 文件| 新项目... | 爪哇

  2. 项目SDK | 添加JDK...

  3. 选择您通过 JavaFX 下载提取 Azul JDK 的位置。

  4. 保留默认选项,选择“下一步”几次。

  5. 为项目命名并选择“完成”。

创建一个 JavaFX HelloWorld.java 类:

  1. 右键单击 src,选择新建| JavaFX 应用程序。

  2. 将其命名为HelloWorld。

  3. 将 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();
        }
    }
    
    Run Code Online (Sandbox Code Playgroud)

使用 Azul JDK + JavaFX 运行时在 IDE 中运行新的 JavaFX 应用程序

  1. 打开 HelloWorld.java 类,单击装订线中的运行应用程序图标,然后选择运行“HelloWorld.main()”。

故障排除

如果执行上述操作后找不到 JavaFX 类,则您可能没有使用包含 JavaFX 的 JDK。

在这种情况下,除非您将 JDK 版本更改为包含 JavaFX 的版本,否则您应该从openjfx.io下载 JavaFX SDK并遵循此处提供的 Idea 项目设置信息。


解决方案 2:使用 Azul,但从 Maven Central 获取 JavaFX 模块

下面的解决方案是将 Azul 运行时与使用 Maven(或 Gradle)从 Maven 中央存储库获取的 JavaFX 模块结合使用。

创建一个 JavaFX 项目

  1. 文件| 新 | 项目... | JavaFX
  2. 将项目名称编辑为您想要的任何名称。
  3. 保留默认选项,选择“下一步”| 结束。

在您的项目中下载并使用 Azul JDK

  1. 文件| 项目结构| 项目SDK | 下载JDK...
  2. 选择供应商 Azul Zulu 社区。
  3. 下载 | 好的

如果您想在 IDE 设置中使用 Azul,而不是用于新 Java 项目的默认 JDK,则只需执行 Azul 下载和添加步骤。

使用 Azul JDK 运行时和 maven JavaFX 模块在 IDE 中运行新的 JavaFX 应用程序

  1. 打开 HelloApplication.java 类,单击装订线中的运行应用程序图标,然后选择运行“HelloApplication.main()”。