我有一个要创建为Jar文件的JavaFX项目。但是,当我尝试这样做时,出现错误。
Error:Java FX Packager: Can't build artifact - fx:deploy is not available in this JDK
去年以来,我在这里发现了类似的problem,但似乎他们什么也没得出结论。
答案 0 :(得分:3)
发生这种情况的原因是,要么您安装了许多JDK并由另一个JDK编译并由另一个JDK运行,要么是在Intellij中创建构件时使用了Javafx Application jar功能,这很可惜。在继续执行以下步骤之前,请确保您正在使用相同的JDK版本进行编译并与之一起运行。 这是您要解决的问题:
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);
}
}
您以前的版本中可能还有一个META-INF
文件夹,请删除它。
以JAR形式构建项目:
File->Project Structure -> Artifacts -> "+" -> JAR-> from modules with dependancies..
为您的主菜单选择Launcher类,然后选中“ 复制到输出目录并通过清单链接”,然后按OK
按“应用”,然后按“确定”。
开始构建->构建工件->重建
答案 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官方文档中。