部署JavaFX应用程序,创建JAR以及自包含应用程序和本机安装程序的最佳方法是什么
我正在使用IntelliJ IDEA,我已准备好部署JavaFX应用程序。 问题是,当我生成JAR文件时,它不会运行,当我在命令行中运行它时,我得到一个Exception,FXMLLoadException,尽管该项目在我的IDE中完美运行。
Ant任务以错误结束,构建15分钟后,我真的不明白究竟是什么问题。
所以我的问题是以正确的方式部署JavaFX应用程序的正确步骤是什么,欢迎使用任何教程或指南。
Java应用程序可以以各种方式打包。 请浏览Java Packaging Overview以查找有关它的所有信息。 其中一个包装是一个self-contained Java application
。
有不同的方法来创建这些包:
- 使用JDK附带的
javapackager
工具 - JavaFX Ant任务
- 用于maven项目的JavaFX Maven插件
自包含应用程序是应用程序打包方式和平台特定方式之一。 该包包含:
- 应用程序包
- JRE的私人副本
可以在此处找到可用捆绑包的列表。
让我们看看我们可以使用的各种工具以及如何使用它们:
JavaPackager工具
JavaPackager Tool是最基本的工具,可帮助您编译,打包,签名和部署Java(FX)应用程序,而无需编写任何其他脚本。 javapackager.jar
文件位于JDK安装的bin目录中。
可在此处使用可与其一起使用的命令列表。
JavaFX Ant任务
JavaFX Ant Tasks通过为项目创建build.xml
文件来帮助您打包应用程序。
可以在此处找到有关如何为项目使用ant脚本的一组示例。
可在此处使用可与其一起使用的命令列表。
JavaFX Maven插件
JavaFX Maven Plugin利用打包java应用程序到maven平台的使用。 您可以通过向项目添加插件来打包基于maven的Java应用程序。
这个插件恕我直言,如果easiest
使用的三个。 它是一个编写得很好,易于理解的工具,并且有大量文档。
JavaFX Gradle插件
JavaFX Gradle Plugin也来自maven插件的作者。 它具有maven插件所具有的所有function,但对于Gradle 🙂
进一步阅读:
- JavaFX的本机包装
- JavaFX打包工具更新
Oracle在其网站上为JavaFX 2和JavaFX 8提供了大量的包装指南。
如果您需要有关特定问题的帮助,请发布您获得的错误的代码和堆栈跟踪。
如果你使用Maven,另一个非常聪明的方法是使用maven-shade-plugin
( 链接 )。 它构建了一个具有所有依赖关系的大型胖jar,您可以在其中直接执行它,而无需做任何其他事情。 您可以将它与javafx-maven-plugin
结合使用。 我也尝试了不同的方法并且玩了很长时间,这个解决方案是唯一真正有效的解决方案。 此外,它很容易设置。
以下是您必须添加到pom.xml的内容:
org.apache.maven.plugins maven-shade-plugin 3.1.1 package shade your.package.name.Main com.zenjava javafx-maven-plugin 8.8.3 your.package.name.Main
在mainClass
更改您的包名称mainClass
获取阴影和javaFx插件,您就完成了。 现在,您可以使用mvn package
始终构建应用mvn package
。