你可以这样做。
- 将你的应用程序构建成jar,就像你正在做的那样。
- 使用
-createjar
开关运行javafxpackager,根据您现有的jar创建一个新的jar。新的jar包含清单条目,允许您使用java -jar app.jar
运行jar。
- 与
-deploy
和-native
开关再次运行的javafxpackager包装罐和Java运行时,与安装的本机应用程序(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应用程序和Linux RPM或DEB软件包。有关如何为每个操作系统定制安装的详细信息,请参阅javafxpackager文档。如果您使用命令行javafxpackager工具,则需要为每个目标操作系统创建打包shell脚本。如果使用javafx ant打包任务,则可以跨操作系统使用相同的打包ant脚本。查看source for the javafx samples(如Ensemble或SwingInterop),了解如何使用ant打包任务来构建本地捆绑包。
要构建Windows安装程序,您需要在机器上安装其他免费软件,如javafxpackager文档中所述。要构建RPM,您需要安装在您的机器上的rpmbuild打包工具。目前,无法从单台机器为所有操作系统构建本地程序包(只能构建特定于该机器类型的本机程序包)。
记住,原生的javafxpackager套餐只是众多Java应用程序的部署选项之一。其他包括webstart,可执行jar文件,第三方打包选项和浏览器嵌入式应用程序。选择最适合您的应用程序,用户,开发技巧和复杂度舒适度的选项。
我已经在过去使用的Unix软件(特别是对企业服务器端应用程序)的本地软件包优秀成功的替代工具链,是maven与rpm maven plugin使用jenkins建立创建部署到nexus存储库nexus yum plugin。该工具链允许您从代码签入转到一组可配置的包,并使用yum依赖关系管理。这个替代工具集虽然需要一些复杂性,但不包括javafxpackager所做的一系列平台。
根据[this](http://docs.oracle.com/javafx/2/deployment/packager.htm)它不会生成本地文件。但是,无论如何,这是一个坏主意,所以不要这样做。只需使用打包程序捆绑组件并使用[Java Web Start](http://stackoverflow.com/tags/java-web-start/info)部署批量。 – 2013-02-22 17:17:54