使用EXE4J将Java程序打包成可执行程序(.exe文件)教程

作者:翁松秀


使用EXE4J将Java程序打包成可执行程序(.exe文件)教程

[TOC]
由于公司需要做一个对数据库服务器的监控程序,用的swing来实现的一个java桌面应用程序,所以需要将做好的监控程序打包成.exe文件,以便监控人员配置监控信息。所以研究了一下如何将Java程序打包成可执行程序,网上的教程七七八八,所以在导出的时候磕磕绊绊,在此写个比较完整的教程,供大家参考,以便后来人少走一点弯路。

环境和工具:

JDK : 1.8
Eclipse(将Java程序打包成可执行JAR文件)
EXE4J(将JAR文件打包成.exe文件)
————————————————————————————————————

Step1:用Eclipse将Java程序打包成可执行JAR文件

右键要打包的工程,选择“Export..”将Java工程导出
这里写图片描述
这里写图片描述
之后进行导出信息的配置
这里写图片描述
配置导出的具体信息,包括要导出的工程main函数所在的类、导出的路径、以及选择什么方式导出依赖库。
Launch configuration:程序入口,选择程序的main函数所在的类
Export destination:导出路径,导出的JAR包存放的路径
Library handing:依赖库的处理方式,这里选择“Copy required libraries into a sub-folder next to the generated JAR”,也就是复制Java程序所引用的外部JAR包到一个文件夹(一般是xxx_lib)里面,这个文件夹的生成目录Export destination选的路径一样。
然后点击Finish开始导出即可。
关于eclipse导出JAR包更具体的操作步骤,可以看我之前写的一篇博文:
如何使用Eclipse将Java工程打包成Jar包

Step2:创建导出目录,导入相关依赖文件

一般情况只需要做前面两步,后两步根据个人需要。
- 在任意目录下创建一个文件夹。
- 将导出的.jar文件和lib文件夹复制到该文件夹底下。
- 如果Java程序有配置文件,比如说从XML中读取信息的则将存放XML配置文件的文件夹config也放到该文件夹里面。
- 如果需要实现.exe在没有装JDK的机器上也能跑,则需要将自己开发的JRE环境复制到该文件夹里面。
这里写图片描述
Monitor.exe是我最后生产的可执行文件,log是我程序输出的日志信息文件。
————————————————————————————————————

Step3:用Exe4j将JAR文件打包成.exe可执行文件

Exe4j = exe for java,是Java导出exe的一款软件。网上资源也挺多的,可以自行下载。在安装和最后运行.exe的时候可能会遇到的问题:

找不到JRE,我装的这个exe4j要求必须是1.7-1.8,而我的JDK是1.10,所以得重新装一个1.7或者1.8的JDK版本,如果装的时候报错可以看错误信息里面要求的jdk版本。然后相应下载一个即可。
这里写图片描述

版本不对应。The JAVA_HOME environment variable does not point to a working 32-bit JDK or JRE.从错误信息也能看出来JAVA_HOME没有指向32位的JDK或者JRE,没错,我们一般装的都是64位,exe4j默认选择的是32位,所以我们需要手动改一下JRE的配置,后面会讲到。
这里写图片描述
这里写图片描述
配置过程主要配置前6步:
1. Project typ:配置工程类型
2. Application info:配置应用软件信息
3. Executable info:配置可执行信息
4. Java invocation:配置Java调用信息
5. JRE:配置JRE信息
6. Splash screen:配置启动界面
7. Messages:配置信息
8. Compile executable:编译过程
————————————————————————————————————
Project typ:配置工程类型
选”JAR in EXE” mode
这里写图片描述
Application info:配置应用软件信息
输入最终生成的可执行程序的文件名以及选择生成路径
这里写图片描述
Executable info:配置可执行信息
Executable type:选择程序类型,我的是GUI所以选择GUI应用程序。
Executable name:可执行程序的文件名
Icon File:如果希望给.exe加一个图标,则Icon File选择该图标的路径
之后点击“32-bit or 64-bit” 这步很关键,不然配到最后生成的可执行文件运行的时候会报JRE版本不匹配的错误。
这里写图片描述
勾选”Generate 64-bit executable“,exe4j默认生成的是32位的可执行程序,所以需要手动勾选生成64位的。其他的直接”next”就可以了。
这里写图片描述
Java invocation:配置Java调用信息 在VM Parameters:后面的部分写了两次都没给我保存,心态崩了,改天再写。