exe4j完成Java转exe 自带jre

时间:2024-04-06 15:31:10

当用户电脑上没有安装Java环境时,我(们)交付程序时,还需要提交一份jre

exe4j支持选择自带的jre;但是好像不支持选择精简的jre,会导致生成的exe不能正常运行

知道怎样用精简jre转exe的朋友请留言…orz,我之前提到了怎样精简jre,结果拿来用exe4j生成的exe运行出现错误,尚未解决


整个过程很简单,很容易掌握。

1.首先下载exe4j

2.准备好程序导出的jar包,第三方jar包(我这里用到了),一份jre(我这里也用到了)

带有第三方jar包程序的导出方式参考:java程序打包成jar文件,使用到第三方jar包

将三者放在同目录下,configure文件可忽略,不需要jre的可以不加(后面过程是类似的)

exe4j完成Java转exe 自带jre

                                                    图1 将三者放在同一个目录

3.启动exe4j准备转换

跳过welcome,来到第二步,选择regular或者jar in exe。

  • regular模式指的是,生成的exe内不包含用到的jar包,二者是分开放的;
  • jar in exe指的是会将所有jar包(导出的jar以及用到的第三方jar)装进exe中,最后只用保留这个exe文件。

就是分开放置和包装放置的区别

exe4j完成Java转exe 自带jre

                                                                  图2 两种模式任选一种

如果选第一种,点击next,为程序起一个名字,source directory选图1的目录,executable directory所选的目录一般相同。

选择jar in exe,点击next的设置与此类似,设置名称,选择exe输出路径

exe4j完成Java转exe 自带jre

                                                             图3 regular mode相关设置

后面的内容是一样的。点击next进入第4项设置,我的是Java GUI程序->为程序起名->我希望程序只有一个实例运行,所以勾选了“allow only a single...”->然后选“32-bit or 64-bit”

exe4j完成Java转exe 自带jre

                                                          图4 Executable info

如果想要生成64位,则勾选。这点考虑使用程序的平台,32位平台只能运行32位的程序,64位平台上32位和64位程序皆可运行。并且jre的位数,要与程序位数等等一直。例如32位程序,需要32位jre。

exe4j完成Java转exe 自带jre

                                                             图5 64bit or 32 bit

next到第5项,Java invocation(Java调用):点击右侧绿色加号,将程序导出的jar包,及用到的第三方jar添加进去;然后选择主类,即程序运行入口所在类

exe4j完成Java转exe 自带jre

                                                            图6 Java invocation

next后来到第6项 JRE,minimum version必须填,可以随便设(不太清楚,就设了1.4),然后选择“Search sequence”(环境搜索顺序)

exe4j完成Java转exe 自带jre

                                                              图7 JRE设置

我是需要选自带的JRE的,所以点击绿色加号,将图1中的jre添加进来。已有的三项可以删除,我只保留了添加的JRE

exe4j完成Java转exe 自带jre

exe4j完成Java转exe 自带jre

                                                        图9 编辑search sequence

接下来一路next到最后了,到第10步 Finished 时,点击“click here to...”可以尝试运行

exe4j完成Java转exe 自带jre

                                                              图10 试运行

注意,如果选择生成32位程序(见图5,未勾选),则需要32位jre环境。为展示,这时我没有添加32位jre,程序按照search sequence查找环境,我的电脑中JAVA_HOME环境变量指向的是64位jre。出现下列错误提示

exe4j完成Java转exe 自带jre


文章写的可能有些繁琐,但的确是把我知道的步骤都写了。