Intellij idea JavaFX可以';t build artifact-fx:deploy在此JDK中不可用
我有一个JavaFX项目,我想将其构建为Jar文件。然而,当我尝试这样做时,我得到了一个错误Intellij idea JavaFX可以';t build artifact-fx:deploy在此JDK中不可用,intellij-idea,javafx,artifact,Intellij Idea,Javafx,Artifact,我有一个JavaFX项目,我想将其构建为Jar文件。然而,当我尝试这样做时,我得到了一个错误 Error:Java FX Packager: Can't build artifact - fx:deploy is not available in this JDK 去年我在这里发现了一个类似的例子,但他们似乎没有得出任何结论。发生这种情况是因为您有许多JDK由另一方安装和编译,并由另一方运行,或者您在Intellij中创建工件时使用了Javafx应用程序jar功能,不幸的是,该功能被破坏了。在
Error:Java FX Packager: Can't build artifact - fx:deploy is not available in this JDK
去年我在这里发现了一个类似的例子,但他们似乎没有得出任何结论。发生这种情况是因为您有许多JDK由另一方安装和编译,并由另一方运行,或者您在Intellij中创建工件时使用了Javafx应用程序jar功能,不幸的是,该功能被破坏了。在继续执行以下步骤之前,请确保使用相同的JDK版本编译和运行。 这是您要解决的问题: 1-创建启动器类: Launcher类将调用运行应用程序的主JavaFx类。选择直接通过主类创建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
META-INF
文件夹,因此请删除它在JetBrains的网站上,我找到了一篇很好的文章,这篇文章非常有用。在这一节中,它说
fx:deploy
任务是以前使用的Ant插件的一部分
作为Java Packager的一部分,在ant javafx.jar中发布。蚂蚁
当前JDK版本的jpackage中不包含插件
如果您使用的是JDK版本9及更高版本,请使用第三方
包装解决方案。例如,请参阅第节
在JavaFX官方文档中
这是一个很好的总结。此外,如果有人将java(或javaFX)应用程序打包为本地应用程序(例如Windows exe、Linux rpm或DEB包或OS X DMG安装的应用程序),则考虑使用作为AN实现的实用程序。对于某些应用程序,这可能比JavaFX的当前选项更适合需求。@jewelsea感谢您提到jpackage。你能帮我弄清楚这件事吗;我试图为JavaFX模块化Maven项目创建一个本机可执行文件。通过使用,我可以用一个启动程序脚本创建一个运行时映像&然后用jpackage打包它,我得到了一个捆绑的exe设置,它工作得很好。但是,它会安装启动程序脚本。但我需要的是安装正在运行的exe文件。有什么建议吗?问一个新问题Tharindu。通过这样做,多人可以回答,您将有更好的机会找到具有适当知识的人为您创建一个好的答案,并且将有一个记录,有人可以搜索以获得类似问题的答案。下面是一个优秀的视频,解释了第二个选项:
Error:Java FX Packager: Can't build artifact – fx:deploy is not available in this JDK