部署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