Bili-Docs
技术工具编程开发

JAVA开发必会小技巧1——导出exe文件

演示在IDEA中将Java FX项目打包成JAR,并使用exe4j工具将其转化为EXE可执行文件的全过程。

UP主: 程序猿张德帅 · 时长: 13:55 · 🔗 B站原视频

发布: 2023-03-12 · 收录: 2023-05-12

标签: Java · IntelliJ IDEA · exe4j · 程序打包

这期要做什么:JavaFX 导出 EXE

今天给大家做一个 JavaFX 导出 EXE 的小教程。之前有人私信说 JavaFX 没法导出 EXE。

一般有两种方式:

  • 通过 Maven 结构
  • 通过非 Maven 结构

我们之前讲的案例都是非 Maven 的,这次就以非 Maven 项目为例来演示。


IDEA 里导出的差异:有的版本能直接导 EXE

Maven 结构的话,有些版本的 IDEA 可以直接导出 EXE,但也有版本不支持。我这个版本就不支持。

在 IDEA 里可以这样看:

进入 Project StructureArtifacts

有的版本在这里会有相关选项,让你指定 Main Class 之类的,然后可以直接导出。但我这个版本没有,所以我们不走这个方式。


第一步:先导出可运行的 JAR

我们先导出 JAR 包。

Artifacts 里选择:

From modules with dependencies...

然后选我们的启动类。选完之后会自动生成输出目录路径,点 OK,接着点 Apply。


第二步:Build Artifacts 生成 JAR 文件

接下来导出 JAR:

BuildBuild Artifacts → 选择对应 Artifact → Build

Build 完之后会生成一个输出目录。比如我这里配置的是 out,所以会看到:

out/artifacts/... 下面有一个 jar。

这个 jar 就是我们导出的 jar 包。


先确认 JAR 能不能运行(JavaFX / JDK17 注意点)

JavaFX 项目是在 Java 环境下运行的。我当前 JDK 是 Java 17。

如果你是 Java 8,一般直接运行 jar 就行。但 Java 17 默认不集成 JavaFX 了,因为 JavaFX 在 Java 8 之后就挪出来了,所以需要单独装 JavaFX,并且运行时要加参数,例如:

  • --module-path 指向 JavaFX 的 lib 目录
  • --add-modules 把需要的模块(比如 javafx.controls 等)加进去

加完这些参数后,就可以正常运行项目。

这里这么做是为了证明:这个 jar 是能用的。因为导出 EXE 的前提就是 jar 本身能跑。

另外,导出 EXE 时可以选择 JDK8,那后面可能就不需要这些参数。


第三步:用 exe4j 把 JAR 转成 EXE

接下来我们用一个工具:exe4j(也有人叫 EXE4J),它是把 jar 包转换成 exe 的工具。

下载安装到 exe4j 之后打开,开始创建可执行文件。


exe4j 创建配置:选择打包 JRE(关键)

第一步基本不用管,直接 Next。

工具里会提示你:exe4j 默认是不包含 Java 环境的。

这里一定要选“把 Java 环境打进去”的那种方式(也就是可迁移的方式),这样你的程序放到没有 Java 环境的电脑上也能运行。


配置应用名、输出目录、图标、32/64 位

应用名称随便填,比如:demo.exe

输出目录:选一个文件夹,比如我在桌面新建一个 demo exe 文件夹,最终 EXE 会导出到这里。

图标(icon)这些可选,不是必须。

高级选项里选择 32/64 位:一般现在都选 64 位。

版本号这类一般不用管,继续下一步。


选择 JAR 和入口类(Main Class),必要时加参数

到配置 Java 的这一步:

  1. 先找到刚才导出的 jar
  2. 把 jar 复制到我们刚才新建的输出文件夹(比如桌面的 demo exe)里

然后在 exe4j 里选择这个 jar 所在的目录。

接下来它会让你选程序入口(Main Class),一般会自动识别,选对应启动类就行。

下面还有参数配置,如果你不是 Java 8,需要加 --module-path--add-modules 之类的参数,也可以在这里加。


选择最低 JDK 版本、配置 JRE(必须删掉默认三项)

接下来是 JDK 版本号,最低兼容版本我选 8。

然后有一个 Java Home / JRE 配置,这里一定要注意:

如果你希望导出的 EXE 在没有 Java 环境的电脑上也能跑,就要把默认的那三个选项删掉,然后改成指定你自己的 JRE 路径。

做法是:

  1. 在本机找到 Java 安装目录(一般在 C:\Program Files\Java\...
  2. 不一定要整个 JDK,通常 JRE 就够
  3. jre 文件夹复制到你的输出目录(比如 demo exe)里
  4. 在 exe4j 里点加号 → 选 Directory → 指向这个 jre

这样它用的是相对路径:只要 jar、exe、jre 这几个目录结构不变,放到哪台电脑上都能识别并运行。


测试运行与最终导出

后面基本默认下一步就行。

到测试这一步,可以点 Run 测试一下,如果能正常启动就说明没问题。

这时 EXE 已经生成在输出文件夹里了,比如 demo.exe。双击就能启动。

最后是否保存配置,看自己需要;我这里不保存,直接关闭。


发给别人运行:压缩整个文件夹保持结构

如果要发到其他电脑:

把整个输出文件夹压缩发过去,对方解压后不要改目录结构,直接双击 exe 就可以正常运行。


结尾

今天先讲非 Maven 的方式:先导 jar,再用 exe4j 转 exe。后面讲到 Maven 结构的时候,再用 Maven 来打包。

On this page