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 Structure → Artifacts。
有的版本在这里会有相关选项,让你指定 Main Class 之类的,然后可以直接导出。但我这个版本没有,所以我们不走这个方式。
第一步:先导出可运行的 JAR
我们先导出 JAR 包。
在 Artifacts 里选择:
From modules with dependencies...
然后选我们的启动类。选完之后会自动生成输出目录路径,点 OK,接着点 Apply。
第二步:Build Artifacts 生成 JAR 文件
接下来导出 JAR:
Build → Build 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 的这一步:
- 先找到刚才导出的 jar
- 把 jar 复制到我们刚才新建的输出文件夹(比如桌面的
demo exe)里
然后在 exe4j 里选择这个 jar 所在的目录。
接下来它会让你选程序入口(Main Class),一般会自动识别,选对应启动类就行。
下面还有参数配置,如果你不是 Java 8,需要加 --module-path、--add-modules 之类的参数,也可以在这里加。
选择最低 JDK 版本、配置 JRE(必须删掉默认三项)
接下来是 JDK 版本号,最低兼容版本我选 8。
然后有一个 Java Home / JRE 配置,这里一定要注意:
如果你希望导出的 EXE 在没有 Java 环境的电脑上也能跑,就要把默认的那三个选项删掉,然后改成指定你自己的 JRE 路径。
做法是:
- 在本机找到
Java安装目录(一般在C:\Program Files\Java\...) - 不一定要整个 JDK,通常 JRE 就够
- 把
jre文件夹复制到你的输出目录(比如demo exe)里 - 在 exe4j 里点加号 → 选 Directory → 指向这个
jre
这样它用的是相对路径:只要 jar、exe、jre 这几个目录结构不变,放到哪台电脑上都能识别并运行。
测试运行与最终导出
后面基本默认下一步就行。
到测试这一步,可以点 Run 测试一下,如果能正常启动就说明没问题。
这时 EXE 已经生成在输出文件夹里了,比如 demo.exe。双击就能启动。
最后是否保存配置,看自己需要;我这里不保存,直接关闭。
发给别人运行:压缩整个文件夹保持结构
如果要发到其他电脑:
把整个输出文件夹压缩发过去,对方解压后不要改目录结构,直接双击 exe 就可以正常运行。
结尾
今天先讲非 Maven 的方式:先导 jar,再用 exe4j 转 exe。后面讲到 Maven 结构的时候,再用 Maven 来打包。