Java工程打包为exe文件(Windows可执行文件)主要是为了让用户更方便地在其系统上运行Java应用程序,无需手动启动Java虚拟机(JVM)和指定类路径。有几种方法可以将Java工程打包为exe文件。在这篇文章中,我们将深入了解其中两种流行方法的原理和详细介绍:使用Launch4j和使用jpackage。
### 一、使用Launch4j
[Launch4j](http://launch4j.sourceforge.net/) 是一个用于将Java应用程序包装成Windows本地执行文件(.exe)的跨平台工具。这个工具支持将应用程序捆绑到一个特定的Java运行时,以便用户不需要安装JRE(Java运行时环境)。
#### 原理:
1. 首先,Launch4j将Java程序(例如,已编译的.java文件生成的.class文件)打包到.jar文件。
2. 然后,Launch4j用一个本地Windows执行器(exe)包装这个.jar文件。执行器负责启动Java虚拟机(JVM),将类路径(即jar包)传递给JVM并启动应用程序的主类。
3. 若要捆绑一个特定的Java运行时,Launch4j可以在.exe文件中嵌入一个指定版本的Java运行时环境(JRE),使得用户无需在其系统上安装JRE即可运行Java应用程序。
#### 操作步骤:
1. 确保您已经安装了Java开发工具包(JDK)并且已经将其添加到您的操作系统的PATH环境变量中。
2. 将Java程序编译为jar文件:
切换到包含源代码文件的目录,然后运行以下命令:
```
javac -d ./bin ./src/**/*.java
jar cvf my_application.jar -C ./bin .
```
上述命令会将编译后的Java类文件打包成名为`my_application.jar`的文件。
3. 下载并安装Launch4j,然后运行它。
4. 在Launch4j中,创建一个新的配置文件,并设置以下选项:
- **Output file**:设置输出的.exe文件的路径和文件名。
- **Jar**:输入步骤2中生成的jar文件的路径。
- **Wrapper**:选择要使用的包装器(默认应该是`console`或`gui`,具体取决于您的应用程序类型)。
- **Min JRE version**:设置所需的Java运行时环境(JRE)的最低版本。
5. 保存并点击“Build wrapper”按钮,开始构建exe文件。
### 二、使用jpackage
从Java 14开始,OpenJDK已经引入了一种名为[jpackage](https://openjdk.java.net/jeps/343)的实验性功能,用于将Java应用程序打包为平台特定的包(比如exe文件)。这个特性需要JDK支持的特定操作系统。
#### 操作步骤:
1. 确保已经安装了Java开发工具包(JDK)14或更高版本,并且已将其添加到操作系统的PATH环境变量中。
2. 编译Java源代码并创建一个jar文件(与使用Launch4j的步骤2相同)。
3. 使用jpackage将jar文件转换为exe文件:
```
jpackage --input
```
填充尖括号中的内容,并将命令粘贴到终端以生成exe文件。例如:
```
jpackage --input ./bin --name MyApp --main-jar my_application.jar --main-class com.example.Main --type exe
```
希望上述两种不同的方法能帮助您成功地将Java工程打包为exe文件。这两种方法各有优劣,您可以根据您的需求和Java版本选择最适合的 one 。