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

2ic8powd  于 2022-12-03  发布在  Java
关注(0)|答案(2)|浏览(902)

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

Error:Java FX Packager: Can't build artifact - fx:deploy is not available in this JDK

去年我在这里找到了一个类似的problem,但看起来他们什么也没有得出结论。

ffdz8vbo

ffdz8vbo1#

在JetBrains网站上,我发现了一篇关于Package JavaFX applications的文章,这篇文章很有帮助。在#故障排除部分,它说,

Error:Java FX Packager: Can't build artifact – fx:deploy is not available in this JDK

fx:deploy任务是Ant插件的一部分,该插件以前作为Java打包程序的一部分在ant-javafx.jar中分发。在当前JDK版本中,jpackage中不包含Ant插件。
如果您使用的是JDK版本9或更高版本,请使用第三方解决方案进行打包。例如,请参阅JavaFX官方文档中的Runtime images一节。

nnt7mjpx

nnt7mjpx2#

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

1 -创建启动程序类:

Launcher类将调用运行应用程序的主JavaFx类。如果选择直接通过Main类生成Jar,则会出现以下错误:

Error: Could not find or load main class Main
    Caused by: java.lang.ClassNotFoundException: Main

您的Launcher类应类似于以下内容:

public class Launcher {
        public static void main(String[] args) {
            MainGUI.main(args);
        }
    }

2 -继续构建Jar

1.您可能仍有来自上一版本的META-INF文件夹,因此请删除它。
1.将项目生成为JAR:
File->Project Structure -> Artifacts -> "+" -> JAR-> from modules with dependancies..
1.选择主启动程序类,选中“复制到输出目录并通过清单链接”,然后按“确定
1.按“应用”,然后按“确定”。
1.转到构建-〉构建工件-〉重建

相关问题