经过很长时间的尝试,终于大致清楚了java程序打包成exe的过程,特做此总结。
首先打包成exe文件有两种方式,一种是通过javafx本地打包的方式,参考文章https://code.makery.ch/zh-cn/library/javafx-tutorial/part7/ ,最后通过ant构建,在安装时不能选择安装目录,如图,最后在菜单栏启动。
这种方式我遇到过一些问题,在build.xml中可能会因为目录有中文乱码而最后报错,需要在有中文的地方检查确保没有乱码;另一个问题是Inno Setup好像只能安装在默认目录即c盘下并需要配置环境变量,不然最后也会报错。通过ant构建后最终生成安装程序在build/deploy/bundles下面。
另外一种方式是通过exe4j和Inno Setup来进行打包。这种方式生成的程序可以选择安装目录,如图
这里首先需要将java程序打成jar包,然后用exe4j将jar包做成自带jre的可执行的exe程序,最后再利用Inno Setup进行包装。
用exe4j将jar包做成exe时需要注意jre的版本问题,在第四步选择生成64位,并在第六步将默认方式删掉,增加自己的jre,将jre从jdk中复制到exe文件同级目录下,如图所示
还要注意程序依赖的资源也应放在同级目录下,然后应该就没什么问题了。
这一步进行完之后可以检测看这里的exe运行起来是否和jar是相同效果,然后再用Inno Setup进行包装。
在最后一步进行包装时,一是要注意添加其他文件时注意文件目录问题,应将资源整合到一个目录下,这里我是将jre和resources整合到了
里面,如图
然后要注意默认是没有简体中文的,需要在官网下载http://www.jrsoftware.org/files/istrans/
下载完放到即可。
然后等待执行完毕再output文件夹下就有安装程序了,安装完是安装目录这样。
最后给出我自己打包的整个文件。
链接:https://pan.baidu.com/s/1uoqkUhGvtIwDWYa9MkFQkQ
提取码:xmzr