JavaFX 无法构建工件 - fx:deploy 在此 JDK 中不可用

Mr.*_*zom 10 javafx intellij-idea artifact

我有一个 JavaFX 项目,我想将其构建为 Jar 文件。但是,当我尝试这样做时,出现错误。

Error:Java FX Packager: Can't build artifact - fx:deploy is not available in this JDK
Run Code Online (Sandbox Code Playgroud)

我从去年开始在这里发现了类似的问题,但似乎他们没有得出任何结论。

AM4*_*429 6

发生这种情况是因为您安装了许多 JDK,并由另一个编译并由另一个运行,或者您在 Intellij 中创建工件时使用了 Javafx 应用程序 jar 功能,但不幸的是它已损坏。在继续执行以下步骤之前,请确保使用相同的 JDK 版本进行编译和运行。这是你修复它:

1 - 创建一个启动器类:

Launcher 类将调用运行应用程序的主 JavaFx 类。选择直接通过 Main 类制作 Jar 会出错,并给出以下错误:

    Error: Could not find or load main class Main
    Caused by: java.lang.ClassNotFoundException: Main 
Run Code Online (Sandbox Code Playgroud)

您的 Launcher 类应如下所示:

    public class Launcher {
        public static void main(String[] args) {
            MainGUI.main(args);
        }
    }
Run Code Online (Sandbox Code Playgroud)

2 - 构建罐子

  1. 您可能还有一个META-INF来自先前版本的文件夹,因此请将其删除。

  2. 将项目构建为 JAR:
    File->Project Structure -> Artifacts -> "+" -> JAR-> from modules with dependencies..

  3. 为主选择 Launcher 类并选中“复制到输出目录并通过清单链接”,然后按确定

  4. 按应用然后确定。

  5. 转到 Build -> Build artifacts-> Rebuild