rss· 投稿· 设为首页· 加入收藏· 繁體版
当前位置: 火魔网 » 程序开发 » Java基础

关于Java应用程序打包的思考

不是很清楚大家用什么软件打包Java应用程序发布给客户,在以前的公司一直用的正版的InstallAnyWhere,功能强大就不说了,但是人家收费也不菲。破解的东西暂时不考虑。

虽然Java语言的特性可以让其很方便的以绿色软件的方式发布。不过对于客户来说,一个msi或者exe的安装包就像是礼品的外包装盒,大部分客户喜欢了双击->下一步->下一步->完成,然后桌面上就有一个软件的快捷方式这样的安装流程。

包括InstallAnyWhere在内,我了解到的大部分打包Java的软件比较关键的一步都是将可运行jar包中含main方法的Class打包成一个exe。

在这个过程中我们需要给打包软件指定可运行的类要添加所有用到的jar包的路径等等,总之感觉是一个比较麻烦的过程。

另外像Advanced Installer如果使用带有该功能的模板的话是需要一个收费的License的。但是Advanced Installer却提供一个Simple版本的模板,不带从jar文件中生成exe的功能,但该模板是免费的。

由此想到了另外一种打包的思路,能够成功的规避这一问题:

1. 用Eclipse的Export功能导出一个可运行的jar文件,该jar文件中包含有所有用到的其他jar包,执行 java -jar HelloWorld.jar 后运行正常

2. 新建一个HelloWorld.bat批处理文件,编辑该文件输入 java -jar HelloWorld.jar,双击运行该文件确保软件运行正常

3. 运用一个小工具Bat to Exe Converter将该bat文件转换成exe文件就可以得到最麻烦的exe文件了,下一步就可以使用Simple模板打包了而不需要专用的Java模板。

这个方法的另外一个优点是整个打包的过程很清晰,运行的步骤可控,不存在打包软件中黑箱操作的问题。用java代码运行的时候可以自己添加其他的控制参数。

如果希望打包免安装JRE版本的软件,可以复制一个jre文件夹在同一路径下,然后将bat中的内容修改为  jre\bin\java -jar HelloWorld.jar 即可。

完整的导出、打包流程请参考:

顶一下
(0)
踩一下
(0)