java做成exe

在Java开发过程中,我们通常会将代码编译成.class文件或者打包成.jar文件。然而,在某些场景下,我们希望将Java程序做成可执行的.exe文件,使得用户能够在不安装Java运行环境(JRE)的情况下运行我们的程序。在这篇文章中,我将详细介绍将Java程序做成exe文件的原理和具体方法。

#### 原理

将Java程序做成.exe文件的背后原理主要是:创建一个独立的、与平台相关的可执行文件(例如,Windows下的.exe文件),这个可执行文件包含了嵌入在其中的JRE以及我们的Java应用程序。当用户运行该可执行文件时,它会启动一个内嵌的Java虚拟机(JVM)来运行我们的程序,而用户完全无需关注这个过程的细节。

#### 详细介绍

要将Java程序做成.exe文件,我们需要借助一些第三方工具,下面将为您介绍两种常用的工具:Launch4j和jpackage。

##### 1. 使用Launch4j

Launch4j是一个跨平台的开源软件,可以将Java程序打包成Windows端的.exe文件。以下是使用Launch4j的详细步骤:

1. 前往Launch4j官方网站:http://launch4j.sourceforge.net/ 下载对应平台的版本。

2. 安装并运行Launch4j。

3. 配置Launch4j:

- 选择“Basic”选项卡。

- 在“Output file”中,填写生成的.exe文件的输出路径。

- 在“Jar”中,选择打包好的.jar文件路径。

- 如有需要,可以更改“Icon”以设置.exe文件的图标。

其他选项卡可以进行更多高级设置,例如选择使用的JRE版本、设置虚拟机参数等。在完成配置后,点击“Build wrapper”按钮生成.exe文件。

##### 2. 使用jpackage(自Java 14起)

从Java 14开始,Java官方提供了jpackage工具,用于将Java程序打包成本地平台的可执行文件(包括.exe文件)。以下是使用jpackage的详细步骤:

1. 确保已安装Java 14或更高版本的JDK,且环境变量配置正确。

2. 打开命令行(Windows用户)或终端(macOS/Linux用户)。

3. 使用`jlink`生成一个定制的Java运行时映像(JRE),其中`--add-modules`可以根据实际需要指定模块。例如:

```

jlink --output my_jre --add-modules java.base,java.desktop,java.sql

```

4. 使用`jpackage`将Java程序和定制的JRE打包成本地可执行文件。例如,在Windows平台下,将如下命令中的参数替换为实际的文件路径:

```

jpackage --name myAppName --input myInputFolder --main-jar myApp.jar --runtime-image my_jre --output myOutputFolder --type exe

```

其中:

- `--name`:生成的可执行文件的名称

- `--input`:包含待打包.jar文件的文件夹路径

- `--main-jar`:待打包的.jar文件名称

- `--runtime-image`:定制的JRE的路径

- `--output`:生成的可执行文件的输出路径

- `--type`:生成文件的类型,此处填写exe

执行上述命令后,myOutputFolder中将生成一个名为myAppName.exe的可执行文件。

通过以上详细介绍,您应该掌握了将Java程序做成.exe文件的原理和操作方法。需要注意的是,生成的.exe文件可能会受到杀毒软件的误报,请确保程序代码的安全性并在分发前对用户进行解释。祝您开发愉快!