编程语言
首页 > 编程语言> > 使用javafxpackager进行非JavaFX2应用程序

使用javafxpackager进行非JavaFX2应用程序

作者:互联网

我有一个由几个预构建JAR文件组成的Java应用程序,我需要将它们部署到不同的平台.我最近发现了javafxpackager,它能够为Windows,Mac和Linux为JavaFX2应用程序创建本机安装程序/二进制文件.由于我的应用程序是预构建的并且不使用JavaFX2,因此我没有得到打包器来使用我的应用程序.

有没有人有这方面的经验,可以帮助吗?或者是否有另一个工具为非JavaFX2应用程序提供javafxpackager的功能?

解决方法:

你可以这样做.

>按照目前的做法将您的应用程序构建到jar中.
>使用-createjar开关运行javafxpackager,根据现有jar创建一个新jar.新jar将包含清单条目,允许您使用java -jar app.jar运行jar.
>使用-deploy和-native开关再次运行javafxpackager,以使用安装程序将jar和java运行时打包为本机应用程序(a self-contained application).

重要的命令是这些:

echo make an executable jar file
$JAVA_HOME/bin/javafxpackager -createjar -srcdir . -appclass start.HelloWorldSwing -srcfiles HelloWorldSwing.jar -noembedlauncher -outdir . -outfile HelloWorld.jar

echo package the jar and java runtime as a native application with installer
$JAVA_HOME/bin/javafxpackager -deploy -srcdir . -srcfiles HelloWorld.jar -outdir . -outfile HelloWorld -appclass start.HelloWorldSwing -native -name HelloWorld

这是一个complete OS X script,您可以使用它来构建Java应用程序,为其创建本机应用程序包,安装本机程序包并运行已安装的应用程序.该脚本使用javafxpackager来创建本机应用程序包.安装的应用程序是一个不使用JavaFX的Swing应用程序(仅用于演示javafxpackager不需要仅使用JavaFX代码).此外,脚本中的javafxpackager命令使用先前使用jar命令创建的jar来显示javafxpackager不需要处理原始类文件,但可以将先前使用其他工具链构建的jar作为输入.

您可以为其他操作系统和打包格式创建包,例如Windows Apps和Linux RPM或DEB包.有关如何为每个操作系统自定义安装的详细信息,请参阅javafxpackager文档.如果使用命令行javafxpackager工具,则需要为每个目标操作系统创建打包shell脚本.如果使用javafx ant包装任务,则可以跨操作系统使用相同的打包ant脚本.有关使用ant打包任务构建本机包的示例,请查看source for the javafx samples,例如Ensemble或SwingInterop.

要构建Windows安装程序,您需要在计算机上安装其他免费软件,如javafxpackager文档中所述.要构建rpms,您需要在计算机上安装rpmbuild打包实用程序.目前,无法从一台计算机为所有操作系统构建本机程序包(您只能构建特定于该计算机类型的本机程序包).

请记住,javafxpackager本机包只是众多Java应用程序部署选项之一.其他包括webstart,可执行jar文件,第三方打包选项和浏览器嵌入式应用程序.选择最适合您的应用,用户,开发技能和复杂性舒适度的选项.

我过去使用的另一个工具链是unix软件的本机软件包(特别是企业的服务器端应用程序)非常成功,是maven,使用jenkins创建的rpm maven plugin版本使用nexus yum plugin部署到nexus存储库.此工具链允许您从代码签入到具有yum依赖关系管理的一组可部署包.这个替代工具集确实需要使用一些复杂功能,并不包括javafxpackager所做的平台范围.

标签:java,deployment,javafx-2,setup-deployment
来源: https://codeday.me/bug/20190620/1245322.html