我正在使用IntelliJ IDEA,我已经准备好部署JavaFX应用程序。问题是,当我生成JAR文件时,它不会运行,当我在命令行中运行它时,我得到一个异常,FXMLLoadException,尽管项目在我的IDE中运行得很好。
Ant任务以错误结束,经过15分钟的构建,我真的不明白到底出了什么问题。
因此,我的问题是什么是正确的步骤来部署JavaFX应用程序的正确方式,任何教程或指南都是受欢迎的。
我正在使用IntelliJ IDEA,我已经准备好部署JavaFX应用程序。问题是,当我生成JAR文件时,它不会运行,当我在命令行中运行它时,我得到一个异常,FXMLLoadException,尽管项目在我的IDE中运行得很好。
Ant任务以错误结束,经过15分钟的构建,我真的不明白到底出了什么问题。
因此,我的问题是什么是正确的步骤来部署JavaFX应用程序的正确方式,任何教程或指南都是受欢迎的。
3条答案
按热度按时间s3fp2yjn1#
一个Java应用程序可以用多种方式打包。请阅读Java打包概述来找到关于它的所有信息。其中一种打包方式是
self-contained Java application
。创建这些软件包的方法有很多种:
javapackager
工具自包含应用程序是打包应用程序的一种方式,并且是特定于平台的。该捆绑包包含:
可在此处找到可用软件包的列表。
让我们来看看我们可以使用的各种工具及其使用方法:
Java打包程序工具
JavaPackager工具是最基本的工具,可帮助您编译、打包、签名和部署Java(FX)应用程序,而无需编写任何额外的脚本。
javapackager.jar
文件位于JDK安装的bin目录中。可以与它一起使用的命令列表是available here。
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插件的所有功能,但对于Gradle:)
进一步阅读:
gpfsuwkq2#
Oracle在其网站上提供了有关JavaFX 2和JavaFX 8打包的详尽指南。
如果您需要特定问题的帮助,请发布您所得到的错误的代码和堆栈跟踪。
ymdaylpp3#
如果您使用Maven,另一个非常聪明的方法是使用
maven-shade-plugin
(link)。它构建了一个包含所有依赖项的大jar,您可以在其中直接执行,而无需执行任何其他操作。您可以将其与javafx-maven-plugin
结合使用。我也尝试了不同的方法,并试用了很长时间,此解决方案是唯一真正有效的解决方案。此外,它很容易设置。下面是您必须添加到pom.xml中的内容:
在
mainClass
中修改shade和javaFx插件的包名,就完成了。现在你可以像往常一样用mvn package
构建你的应用程序。