将Java程序制作成exe文件


placeholder image
admin 发布于:2016-07-22 08:53:38
阅读:loading

背景介绍

以前关注过一段时间的制作Java安装程序的实现,当时找的是install4j,也跟着教程实现了一下,给我的感觉就是过程太复杂了,业余了解一下就够了,而前段时间的制作俄罗斯方块的安装包时发现了exe4j的实现,感觉制作过程简单多了。现在说一下这两个软件给我的感觉:install4j感觉是重量级的,制作出的安装程序有下一步下一步的安装功能,跟一般软件的安装过程差不多,而exe4j貌似比较轻量级了,就是将一套程序包写入exe文件,直接双击打开exe文件就是程序的执行文件,无需下一步一下一步的安装了(了解的有点片面了,有不当之处可指出),可按自己所需进行选择。

最近有个需求决定使用swing实现,swing这种东西用的太少了,但是一直都没丢,时不时的还用它写个小玩意儿,所以面对使用swing做一个程序问题不大,而开发工具就使用熟悉的MyEclipse自带的插件,之后再找一套swing的皮肤,包装包装看上去就像那么回事儿了。这里主要说一下使用exe4j来制作安装包的方式。

实现步骤

一、将Java程序导出可执行的jar文件

使用eclipse的导出可执行的jar文件,如果程序使用到第三方的jar文件,也会导出到一个单独的目录,打开jar文件可正常运行(程序中如果使用到了图片之类的文件需要代码中处理好获取图片的方式,我采取的是将图片放置在java的package里面)。 这个过程这里就不多说了。

二、安装exe4j文件

下载一个exe4j的安装文件,最后将给出我这里使用的5.0.1的安装文件和注册码。

三、制作exe安装文件

本次安装文件将作用于没有jre的非开发人员的机器上。

安装exe4j_windows_5_0_1.exe时会提示本机必须有jre环境,且版本不能小于7。

1)安装后打开界面并输入注册码,如下图所示:

输入注册码.png

2)首次使用毫无疑问是创建一个新的打包文件,上图中由于我以前制作过,所以可以Reopen(此处有个clear List),正常情况这个按钮是禁用的,直接点击Next,在新界面中选择 “Jar in EXE” 模式,并Next,如下图所示:

选择exe模式.png

3)在Configure application 界面中输入程序的名字及输出目录,如下图所示:

设置应用名称与输出目录.png

4)本步骤比较重要可在此步骤设置exe文件名称,安装文件的小图标,支持的系统版本(32位或64),默认不处理为32位,参考下图所示:

设置软件信息.png

5)本步骤为添加执行jar文件以及所依赖的第三方的jar文件,如下图所示:

设置运行参数.png

启动与运行环境.png

在Advanced Opptions处可以添加本地的其它jar库,可选择整个文件夹,即增加当前jar程序依赖的第三方jar包,如Spring、Apache等环境的jar包依赖(该部分依赖可以在打包时打包成一个大的可执行jar中,也可以将所有其它jar存放于某个文件夹中,此处进行引用)。

同时,此步骤可以设置运行时依赖的JDK_HOME或JRE_HOME或系统注册JDK或指定某个目录的JRE等等(一般可以提供特定版本位数的exe文件和指定版本的jre,放置于同一个目录中,不需要依赖运行时机器上的jre环境,直接由软件捆绑)。

6)输入jre运行的最小版本和最大版本,最小版本还是看程序代码了,一般现在开发1.5就比较老了,最大版本可不输入,点击Advanced Options 菜单,选择第一个如下图所示:

配置JRE.png

此时回过头来将jre拷贝至输出目录,以后输出目录的exe与此jre存在同一个文件夹下(jre的版本当与系统的版本一致,如32bit windows的要32bit的jdk),比如可以网上下载一个jre的精简版本,如下图所示:

运行环境.png

如果采用的是安装文件自带的jre时此处需要选择 Client hostpot VM,如下图所示:

选择JVM模式.png

7)本步骤是给安装文件添加一个运行前的显示图片,这里为给出这个效果随便找一个图片来了,详细设置如下:

启动图片.png

8)本步骤可默认,直接Next,如下图所示:

可执行软件信息.png

9) 编译以上配置项,正常情况会直接进行到 10)根据配置在输出目录生成exe文件,也可将上述配置过程另存为 .exe4j后缀的文件,打开exe文件验证一下,如下图所示:

制作完成.png

运行结果

至此一个简单的exe制作完成了,回顾上述过程中适合的场景:安装文件带自定义图标、打开exe时的提示图片、可运行与没有安装jre的环境中,比较轻量级 ;如果想复杂就用install4j安装,打开它安装的过程时就跟安装DbVisualizer 过程差不多一样,可在安装完的目录中找到那个可运行的jar文件等等。

由于当时写程序时采用的是jdk64位的,故此处的jre也需要是jdk7的版本,上述打包是32位版本,故此处也使用的是32为jdk7,否则运行可能会有java.lang.UnsupportedClassVersionError的错误,参考如下图运行所示:

aa.gif

小贴士

在有的时候我们使用log4j在记录日志,其中log4j.appender.appenderLocation.File=${user.dir}/logs/run-log.log,此时在ide中的logs目录位于与src目录同级,在打包成exe后则会在exe的同级目录下创建logs目录和run-log.log文件,另外打包时上图第5步在添加jar时,需要将log4j的jar放置在commons-logging.jar的前面。


 点赞


 发表评论

当前回复:作者

 评论列表


留言区