3

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

4

1 回答 1

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. 保留默认选项,选择 Next 几次。

  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();
        }
    }
    

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

  1. 打开 HelloWorld.java 类,单击装订线中的 Run application 图标,然后选择 Run '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. 保留默认选项,选择 Next | 结束。

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

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

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

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

  1. 打开 HelloApplication.java 类,单击装订线中的 Run application 图标,然后选择 Run 'HelloApplication.main()'。
于 2021-10-19T18:27:59.627 回答