跳到主要内容

使用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 的机器上测试运行。