java 项目打包

0 写在前面

这个教程只是对我个人经验的总结,并非完善的教程。

文章内容是把 java 程序制作 jar 包以及导出无需环境的 exe。

工具:IDEA

1 大致流程(原理)

把项目的源码编译后的字节码文件通过 IDEA 打包为 jar,这个过程被被 IDEA 称为"构建工件"。

找到 Jar 包,把它和你的资源文件按照合适的相对路径放在一个文件夹里。

创建 EXE 可执行文件:使用 exe4j 软件导出 exe 文件,同时附上需要的运行需要的 jre;同样别忘了你的资源文件。

2 准备步骤

2.1 调整项目结构(重要)

我的策略是把资源文件放在 src 的外面,这样 jar 本身的大小就只跟源码文件大小有关,一般很小;但资源文件是外挂的,如果想要把资源文件也放在 src 里的话请另寻方法。

java-jar-exe-1

如果想使用本教程,请先进行移动资源文件至 src 外的操作。

2.2 导出 jre

在 java 11 之后官网上就不提供 jre 下载了,之后想要对应版本的 jre 需要自己从 jdk 中导出。

首先看看你的项目的 jdk 版本。

这个在 文件 -> 项目结构 -> 项目设置 -> 项目 里查看。如我使用的是 jdk 11.0.15。

java-jar-exe-2

SDK(jdk) 的位置可能不是你自己安装的 jdk 的位置,请注意。

比如你安装了 jdk 17,而项目使用了 jdk 11,那么IDEA 可能会找另一个位置放它需要的 jdk,比如下图,IDEA 就把项目需要的 jdk 放在用户文件夹里了。

项目结构 -> 平台设置 里查看。

java-jar-exe-3

下一步就是打开对应的 jdk 的目录。

java-jar-exe-4

你也可以打开 cmd 执行 cd 命令进入目录,看个人喜好。

java-jar-exe-5

接下来在该目录下打开 cmd,输入执行:

bin\jlink.exe --module-path jmods --add-modules java.desktop --output jre

用此命令来导出 jre,等待一小会儿,没有显示表示正常。也可以输入 dir 命令查看,jre 就在该目录中。

java-jar-exe-6

最后把 jre 文件夹复制走就行。

2.3 下载 exe4j 软件

exe4j 是一个把 jar 导出为 exe 的软件,需要 KEY。

本人郑重声明:仅用于学习。

官网:ej-technologies - Java APM, Java Profiler, Java Installer Builder

KEY:A-XVK258563F-1p4lv7mg7sav

打开软件之后注册时需要填写姓名和公司,这个随便填一下就行。

如果实在是无法从官方渠道获得,或者是正版渠道付费太高,再去考虑 D 版。这个软件官网好好的,就别去什么下载站和微信公众号里下载了。原因不仅是低版本的 exe4j 不支持高版本的 jdk,而且在他们那里下载总有种被当成弱智的感觉 :(。

3 在 IDEA 中导出 jar 包并运行它

IEDA 本地的教程就有关于这一部分的讲解,很详细,但好像很难打开,所以这里还是再说一遍。

Create your first Java application | IntelliJ IDEA

神奇的链接,貌似只有打开 IDEA 才能打开。

  1. 文件 -> 项目结构 -> 项目设置 -> 工件

java-jar-exe-7

  1. 点击 + 号,选择 JAR -> 来自具有依赖项的模块。

java-jar-exe-8

  1. 进入 "从模块创建 JAR" 窗口后,要选择主类,那么点击后面的文件夹图标,让 IEDA 自己搜索到 Main 类,选择并确定即可。

java-jar-exe-9

  1. 回到项目结构界面,依次点击应用和确定。

java-jar-exe-10

  1. 选择 构建 -> 构建工件

java-jar-exe-11

  1. 在弹出的窗口继续选择构建。

java-jar-exe-12

  1. 最后找到构建好的工件,也就是 jar 包,一般在默认位置。

java-jar-exe-13

  1. 把它放到新的文件夹中,和资源文件按照指定的路径放在一起即可,尝试点击 jar 运行。

注意:这仍然需要用户的电脑上已经安装 java 环境。

java-jar-exe-14

4 在 exe4j 中导出 exe

  1. 请先准备好你的软件包的其他部分再开始导出 exe。

java-jar-exe-15

文件夹下需要你的资源文件,jre 文件夹。

  1. 总的来说,按照 exe4j 给定的步骤操作就行,但仍有需要注意的点,下面是讲解。

java-jar-exe-16

  1. 在第三步选择:"JAR in EXE" mode

java-jar-exe-17

  1. 在第四步输入可执行文件名称,此为必选项,其余设置依你而定。

比如我设置了只允许运行单一实例,也就是我不希望同时开启多个游戏窗口。如果我不选择,可预见的是我的程序会在文件读写的地方出现错误。

java-jar-exe-18

  1. 在第五步导入 jar 包,点击加号,再是省略号去寻找你的 jar 包。

java-jar-exe-19

  1. 仍然是第五步,选择主类。

java-jar-exe-20

  1. 在第六步,先输入允许的 jre 版本,这里可以任意,我填写的是最小 1.6,最大 1.8;再点击 高级选项 -> Search sequence

java-jar-exe-21

  1. 在接下来的窗口设置 jre。

首先删除默认的三项,它们使用的是环境,这不是我们所希望的,我们希望的是运行不依赖于环境,而这需要我们自己准备的 jre。

java-jar-exe-22

选择我们的准备的 jre 包,注意,它必须和你的 exe 文件在同一目录,这也是我在 1 里提到的。

点击加号,选择 Directory,找到 jre。

java-jar-exe-23

  1. 接下来的步骤就可以一路点击下一步了,结束生成后,点开 exe 看看效果吧!

java-jar-exe-24

最后修改:2022 年 05 月 04 日
如果觉得我的文章对你有用,请随意赞赏