使用WinRAR构建集成JRE的Java可执行文件
本教程使用软件
- IntelliJ IDEA 2022.2.3 (Ultimate Edition)
- WinRAR
思路:生成jar包→构建自解压程序。运行时自动解压到临时目录并运行。
构建jar包
这是一个把你的代码进行编译并塞进一个文件的操作。
打开你的项目。
打开文件-项目结构
。
选择项目设置-工件-加号-JAR-来自具有依赖项的模块
。
选择需要打包的模块
和需要运行的主类
。
生成jar包:构建-构建工件-构建
。
可在输出目录找到jar包。
生成EXE文件
请先准备:
- Java Runtime Environment(JRE)
- WinRAR 中文版下载
- 为EXE准备的图标(ico格式)(可选)
开发时使用的是JDK,JDK中包含了很多在运行时不需要的东西,运行Java程序只需要JRE就可以了,所以我们可以将JRE嵌入到exe中,这样就不需要用户安装JRE了。
下载 JRE
我使用的是 LibericaJRE,下载地址:https://bell-sw.com/pages/downloads/#downloads。
根据你的JDK版本选择对应的JRE版本进行下载,我使用的是JDK17。
选择32位可以适配更多机器,并且JRE会更小。在我这个案例中,使用Standard JRE
就够用了,如果你的程序需要使用JavaFX
,那么你需要使用Full JRE
。
按照官方的说法:
Liberica Java SE开发包(JDK)可用于运行、编译和调试应用程序,或用Java模块的子集创建自己的Java Runtime。如果你需要运行一个简单的Java应用程序,并且你正在寻找更小的足迹,请下载一个Java SE运行时环境(JRE)。
Full 版本包括LibericaFX,它基于OpenJFX和Minimal VM。
Standard 版本最适合于不需要任何额外组件的服务器和桌面部署。
下载完成后,解压到与exe文件同一目录下,并将文件夹重命名为jre
。
打包 EXE
使用 WinRAR 生成自解压程序。 选中需要添加到EXE中的文件,一般包括:
- jar包
- JRE
- 代码中用到的外置资源文件(如图片、字体等)
右键选择添加到压缩文件
。
勾选创建自解压程序
。
进入自解压程序的进阶设置。
在模式
中选择解压到临时目录
和全部隐藏
,这样可以不用处理解压的过程。
在更新
中选择覆盖所有文件
,防止解压时因为已经存在文件弹出提示。
在解压缩之后执行
填写执行命令。
.\jre\bin\javaw.exe -jar .\a.jar
注意以上命令,a.jar
是你的jar包名,如果你的jar包名不是a.jar
,请修改。
在该案例中,因为我的 Java 程序为窗口程序,并且不需要控制台,所以使用了 javaw.exe
,如果你的程序需要控制台,那么请使用 java.exe
。
如果希望为你的程序选择一个自定义图标,可以在文字及图标
的底部填入图标路径。
点击确定就可以开始打包了。
可以看到,生成的可执行文件还是比较大的。
在没有安装 JRE 的机器上测试运行。