当用户电脑上没有安装Java环境时,我(们)交付程序时,还需要提交一份jre
exe4j支持选择自带的jre;但是好像不支持选择精简的jre,会导致生成的exe不能正常运行
知道怎样用精简jre转exe的朋友请留言…orz,我之前提到了怎样精简jre,结果拿来用exe4j生成的exe运行出现错误,尚未解决
整个过程很简单,很容易掌握。
1.首先下载exe4j
2.准备好程序导出的jar包,第三方jar包(我这里用到了),一份jre(我这里也用到了)
带有第三方jar包程序的导出方式参考:java程序打包成jar文件,使用到第三方jar包
将三者放在同目录下,configure文件可忽略,不需要jre的可以不加(后面过程是类似的)
图1 将三者放在同一个目录
3.启动exe4j准备转换
跳过welcome,来到第二步,选择regular或者jar in exe。
- regular模式指的是,生成的exe内不包含用到的jar包,二者是分开放的;
- jar in exe指的是会将所有jar包(导出的jar以及用到的第三方jar)装进exe中,最后只用保留这个exe文件。
就是分开放置和包装放置的区别
图2 两种模式任选一种
如果选第一种,点击next,为程序起一个名字,source directory选图1的目录,executable directory所选的目录一般相同。
选择jar in exe,点击next的设置与此类似,设置名称,选择exe输出路径
图3 regular mode相关设置
后面的内容是一样的。点击next进入第4项设置,我的是Java GUI程序->为程序起名->我希望程序只有一个实例运行,所以勾选了“allow only a single...”->然后选“32-bit or 64-bit”
图4 Executable info
如果想要生成64位,则勾选。这点考虑使用程序的平台,32位平台只能运行32位的程序,64位平台上32位和64位程序皆可运行。并且jre的位数,要与程序位数等等一直。例如32位程序,需要32位jre。
图5 64bit or 32 bit
next到第5项,Java invocation(Java调用):点击右侧绿色加号,将程序导出的jar包,及用到的第三方jar添加进去;然后选择主类,即程序运行入口所在类
图6 Java invocation
next后来到第6项 JRE,minimum version必须填,可以随便设(不太清楚,就设了1.4),然后选择“Search sequence”(环境搜索顺序)
图7 JRE设置
我是需要选自带的JRE的,所以点击绿色加号,将图1中的jre添加进来。已有的三项可以删除,我只保留了添加的JRE
图9 编辑search sequence
接下来一路next到最后了,到第10步 Finished 时,点击“click here to...”可以尝试运行
图10 试运行
注意,如果选择生成32位程序(见图5,未勾选),则需要32位jre环境。为展示,这时我没有添加32位jre,程序按照search sequence查找环境,我的电脑中JAVA_HOME环境变量指向的是64位jre。出现下列错误提示
文章写的可能有些繁琐,但的确是把我知道的步骤都写了。