这几天女朋友叫我帮她做一个Windows平台的导出Excel文件的工具,考虑到时间问题,就选择最熟练的语言Java来实现。但是Eclipse打包出来的文件是以jar为后缀的,要想运行这个文件,必须安装jre,对于非开发的用户来说这个没有必要的,所以我准备把.jar文件转为.exe文件。
在网络上查了下,使用exe4j工具来实现转换,软件使用的基本步骤我就不说了,接下来以要创建一个32位.exe目标程序为例,讲一下可能会出现的一些问题:
1.你要清楚的目标文件是32位还是64位的,如果生成的是32位,你就要使用32位的jre,如果生成的是64位,就要使用64位的jre。
图 1
在圆圈位置进行32bit或64bit的选择。因为我要创建的是32bit,所以就使用默认的。
2.JRE的配置(没配置好的话报各种JAVA_HOME错误):
我先创建一个文件夹叫“HJ小助手”,然后把我的可执行程序limitvic1.1.jar和jre文件夹放进去,以后生成的.exe文件也放在这个目录。
图2
点击图一中的第六项JRE的search Sequence,会出现如图所示界面:
图三
把这三项都删掉,然后重新选择jre的目录,指定目录为“HJ小助手1.1”文件夹中的jre文件夹。如图:
图四
这样子导出来的.exe可执行文件就可以执行,不会报如下图所示的错误了,把"HJ小助手1.1"这个文件夹发给电脑没有安装jre 的小伙伴也可以使用。
3.转化后的.exe文件无法显示图片资源。
我的项目是Swing项目,其中需要用到一些图标。因为是.exe执行文件,所以读取图片资源的时候需要用到类加载器,而不能直接使用URL地址。
ImageIcon icon = new ImageIcon(ImageIO.read(getClass().getClassLoader(). getResource("frame.png")));
还有很重要的一点就是图片放置的文件夹必须是系统资源文件夹,不然图片获取不了,如图所示将文件夹设置为资源文件夹。
4. 既然已经生成了可运行的.exe文件,但是给别人使用的时候就要把jre文件夹也一起放进去,这样子文件夹大小似乎达到了100多兆了,可你原本的文件其实很小,所以我用Inno Setup 打包工具,把文件夹打包成一安装文件,这样子占用容量就减小了很多。Inno Setup 工具的使用方法也是十分简单,而且网络上已经可以下载到汉化版本的。这里就提一下在打包过程中的一个该注意的问题:
如图所示:添加文件夹的时候,要把jre文件夹的上一级目录添加进去,在本项目中是"HJ小助手1.1"这个文件夹,不然运行的时候找不到jre文件。
根据脚本向导步骤很快就可以生产.exe的安装文件,大小为30多兆,比原来的文件夹小多了。