### 文章目录
- [@[TOC](文章目录)](#文章目录 @TOC 一、准备项目 1. 必备工具与软件 JavaFX SDK 11.0.2 Launch4j openjdk-24.0.2+12-54 生成的jar包 2. pom.xml配置 二、手动转换 1、转换前配置 launch4j配置 2、将jar转换成exe 三、测试)
- [一、准备项目](#文章目录 @TOC 一、准备项目 1. 必备工具与软件 JavaFX SDK 11.0.2 Launch4j openjdk-24.0.2+12-54 生成的jar包 2. pom.xml配置 二、手动转换 1、转换前配置 launch4j配置 2、将jar转换成exe 三、测试)
- [1. 必备工具与软件](#文章目录 @TOC 一、准备项目 1. 必备工具与软件 JavaFX SDK 11.0.2 Launch4j openjdk-24.0.2+12-54 生成的jar包 2. pom.xml配置 二、手动转换 1、转换前配置 launch4j配置 2、将jar转换成exe 三、测试)
- [JavaFX SDK 11.0.2](#文章目录 @TOC 一、准备项目 1. 必备工具与软件 JavaFX SDK 11.0.2 Launch4j openjdk-24.0.2+12-54 生成的jar包 2. pom.xml配置 二、手动转换 1、转换前配置 launch4j配置 2、将jar转换成exe 三、测试)
- [Launch4j](#文章目录 @TOC 一、准备项目 1. 必备工具与软件 JavaFX SDK 11.0.2 Launch4j openjdk-24.0.2+12-54 生成的jar包 2. pom.xml配置 二、手动转换 1、转换前配置 launch4j配置 2、将jar转换成exe 三、测试)
- [openjdk-24.0.2+12-54](#文章目录 @TOC 一、准备项目 1. 必备工具与软件 JavaFX SDK 11.0.2 Launch4j openjdk-24.0.2+12-54 生成的jar包 2. pom.xml配置 二、手动转换 1、转换前配置 launch4j配置 2、将jar转换成exe 三、测试)
- [生成的jar包](#文章目录 @TOC 一、准备项目 1. 必备工具与软件 JavaFX SDK 11.0.2 Launch4j openjdk-24.0.2+12-54 生成的jar包 2. pom.xml配置 二、手动转换 1、转换前配置 launch4j配置 2、将jar转换成exe 三、测试)
- [2. pom.xml配置](#文章目录 @TOC 一、准备项目 1. 必备工具与软件 JavaFX SDK 11.0.2 Launch4j openjdk-24.0.2+12-54 生成的jar包 2. pom.xml配置 二、手动转换 1、转换前配置 launch4j配置 2、将jar转换成exe 三、测试)
- [二、手动转换](#文章目录 @TOC 一、准备项目 1. 必备工具与软件 JavaFX SDK 11.0.2 Launch4j openjdk-24.0.2+12-54 生成的jar包 2. pom.xml配置 二、手动转换 1、转换前配置 launch4j配置 2、将jar转换成exe 三、测试)
- [1、转换前配置](#文章目录 @TOC 一、准备项目 1. 必备工具与软件 JavaFX SDK 11.0.2 Launch4j openjdk-24.0.2+12-54 生成的jar包 2. pom.xml配置 二、手动转换 1、转换前配置 launch4j配置 2、将jar转换成exe 三、测试)
- [launch4j配置](#文章目录 @TOC 一、准备项目 1. 必备工具与软件 JavaFX SDK 11.0.2 Launch4j openjdk-24.0.2+12-54 生成的jar包 2. pom.xml配置 二、手动转换 1、转换前配置 launch4j配置 2、将jar转换成exe 三、测试)
- [2、将jar转换成exe](#文章目录 @TOC 一、准备项目 1. 必备工具与软件 JavaFX SDK 11.0.2 Launch4j openjdk-24.0.2+12-54 生成的jar包 2. pom.xml配置 二、手动转换 1、转换前配置 launch4j配置 2、将jar转换成exe 三、测试)
- [三、测试](#文章目录 @TOC 一、准备项目 1. 必备工具与软件 JavaFX SDK 11.0.2 Launch4j openjdk-24.0.2+12-54 生成的jar包 2. pom.xml配置 二、手动转换 1、转换前配置 launch4j配置 2、将jar转换成exe 三、测试)
一、准备项目
1. 必备工具与软件
JavaFX SDK 11.0.2
-
11.0.2 是一个具体的版本,你当然可以使用其它的版本,但要注意与其它组件的兼容性。JavaFX SDK 11.0.2是一个用于开发JavaFX应用程序的工具包,适用于Java 11及更高版本。是一个独立模块化组件,需要单独下载和配置才能使用。
-
在 Windows 上,解压后直接访问 lib 目录即可使用库文件。如下图中为JavaFX SDK 11.0.2主目录下资源。

Launch4j
- Launch4j是一个用于将 Java 应用程序打包成独立的 Windows 原生可执行文件(.exe)的开源工具,从而实现跨平台部署。
openjdk-24.0.2+12-54
- OpenJDK是Java平台的开源开发工具包,也是你的java项目运行环境。
生成的jar包
- 在IDEA中生成打包jar的方法,请参阅本博主之前的文章:《IDEA中将java项目打包成JAR的详细过程》
2. pom.xml配置
-
pom.xml 是 Maven 项目的核心配置文件,采用 XML 格式定义项目元数据、依赖关系和构建规则,用于自动化 Java项目的构建、依赖管理和打包。
<?xml version="1.0" encoding="UTF-8"?>
不同的项目,pom.xml是不同的,这里只是本文测试项目所用的pom.xml,供参考。<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>lotteryfx</groupId>
<artifactId>Lottery</artifactId>
<version>1.0</version>
<name>Lottery</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<junit.version>5.10.2</junit.version> </properties></project><dependencies> <dependency> <groupId>javax.activation</groupId> <artifactId>activation</artifactId> <version>1.1.1</version> </dependency> <dependency> <groupId>org.openjfx</groupId> <artifactId>javafx-controls</artifactId> <version>17.0.6</version> </dependency> <dependency> <groupId>org.controlsfx</groupId> <artifactId>controlsfx</artifactId> <version>11.2.1</version> </dependency> <dependency> <groupId>com.dlsc.formsfx</groupId> <artifactId>formsfx-core</artifactId> <version>11.6.0</version> <exclusions> <exclusion> <groupId>org.openjfx</groupId> <artifactId>*</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>net.synedra</groupId> <artifactId>validatorfx</artifactId> <version>0.5.0</version> <exclusions> <exclusion> <groupId>org.openjfx</groupId> <artifactId>*</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.kordamp.ikonli</groupId> <artifactId>ikonli-javafx</artifactId> <version>12.3.1</version> </dependency> <dependency> <groupId>org.kordamp.bootstrapfx</groupId> <artifactId>bootstrapfx-core</artifactId> <version>0.4.0</version> </dependency> <dependency> <groupId>eu.hansolo</groupId> <artifactId>tilesfx</artifactId> <version>21.0.3</version> <exclusions> <exclusion> <groupId>org.openjfx</groupId> <artifactId>*</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-api</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-engine</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.17.1</version> </dependency> <!-- SLF4J API --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.30</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.13.0</version> <configuration> <source>24</source> <target>24</target> </configuration> </plugin> </plugins> </build>
二、手动转换
1、转换前配置
- 当上述介绍的工具与软件准备齐全后,就可以进入转换环节了,首先是软件配置。

launch4j配置
打开launch4j目录,打开目录下的launch4j.exe文件。如下图。

- 打开launch4j.exe后的几个关键配置步骤。
- basic选项卡下的Output file中选择你要生成的exe文件名及路径。
- basic选项卡下的jar中选择你的jar包。
- basic选项卡下的Icon中选择你要生成的exe文件的显示图标,这里是可选项,不选择任何文件不会影响转换。

-
Header选项卡下的Header type中选择GUI项。

-
JRE选项卡下的JRE paths下填入你的openjdk主目录下的bin路径。 注意这里的"./"表示当前路径。
-
-JRE选项卡下的JVM options下填入如下内容。 注意这里的"."表示当前路径。javafx-sdk-11-0-2\根据你的时间路径与版本填写。
module-path ".\javafx-sdk-11-0-2\lib" --add-modules javafx.controls,javafx.fxml

- launch4j中的其它选项可选择默认
2、将jar转换成exe
上述配置完成后,点击下图中的图标。

弹出保存配置文件的图标,这个xml的配置文件保存后,下一次可直接打开使用,不需要在重新配置。

- 点击保存后,launch4j会自动将jar包转换成exe文件,这时候,你的目标文件夹中,会生成一个新的exe文件

三、测试
- 将新生成的exe文件同上述openjdk-24.0.2+12-54,JavaFX SDK 11.0.2放在同一个文件夹下,这是关键步骤
- 这样,在没有安装java环境的系统中,你生成的exe就可以正常打开了,注意上一步不能省略。
