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

时间:2019-02-21 12:12:17

标签: intellij-idea javafx artifact

我有一个要创建为Jar文件的JavaFX项目。但是,当我尝试这样做时,出现错误。

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

去年以来,我在这里发现了类似的problem,但似乎他们什么也没得出结论。

2 个答案:

答案 0 :(得分:3)

发生这种情况的原因是,要么您安装了许多JDK并由另一个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 

您的启动器类应如下所示:

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

2-开始构建Jar

  1. 您以前的版本中可能还有一个META-INF文件夹,请删除它。

  2. 以JAR形式构建项目:
    File->Project Structure -> Artifacts -> "+" -> JAR-> from modules with dependancies..

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

  4. 按“应用”,然后按“确定”。

  5. 开始构建->构建工件->重建

答案 1 :(得分:1)

在JetBrains网站上,我找到了一篇很好的文章,Package JavaFX applications确实很有帮助。在#troubleshoot部分中,

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

fx:deploy任务是Ant插件的一部分,该插件以前是 作为Java Packager的一部分在ant-javafx.jar中分发。蚂蚁 当前JDK版本的jpackage中未包含该插件。

如果您使用的是版本9和更高版本的JDK,请使用第三方 包装解决方案。例如,请参考第Runtime images节 在JavaFX官方文档中。