java打包exe2021

Java打包成EXE文件教程(2021)

Java的跨平台性是其最大的优势之一,但有时,我们需要将Java程序打包成Windows特定的EXE文件,以便更容易分发和运行。本教程将向您展示如何将Java程序打包成EXE文件。

Java打包成EXE的原理

Java打包成EXE的原理是将Java Runtime Environment(JRE)的一个子集嵌入到EXE文件中,同时将Java应用的字节码和所需资源(如图像和配置文件)一起捆绑。当用户运行此EXE文件时,嵌入式的JRE子集将负责启动Java虚拟机(JVM),并执行捆绑的字节码。

以下是关于如何将Java应用程序打包成EXE文件的详细教程:

方法一:使用Launch4j打包Java程序

Launch4j是一个跨平台的Java应用程序打包器,可以将Java程序打包成Windows原生的可执行文件。Launch4j提供了图形化界面以及命令行工具,让您可以轻松地将JAR文件转换为EXE文件。

1. 下载并安装Launch4j

访问[http://launch4j.sourceforge.net/](http://launch4j.sourceforge.net/),下载最新版本的Launch4j,并解压缩到您选择的目录。

2. 运行Launch4j

运行Launch4j可执行文件。如果您使用的是Windows,可以运行launch4j.exe。如果您使用的是macOS或Linux,可以通过运行launch4j脚本在终端中启动Launch4j。

3. 配置Java程序

在Launch4j界面中,进行以下配置:

- Output file: 选择生成的EXE文件的路径。

- Jar:选择您的Java应用程序的JAR文件路径。

- Icon:如果您想使用自定义图标,可以选择图标文件的路径(可选)。

- Change dir:选择JRE的目录(可选,只需选择一个兼容的JRE即可)。

4. 生成EXE文件

点击“Build”按钮,Launch4j将打包并生成一个EXE文件。运行生成的EXE文件,您将看到它将启动您的Java应用程序。

方法二:使用jpackage将Java程序打包成EXE

从Java 14开始引入的jpackage工具可直接将Java应用程序打包成平台特定的可执行文件,包括Windows、macOS和Linux。

1. 下载并安装Oracle JDK 16

为了使用jpackage,需要具备Oracle JDK 16。访问[https://www.oracle.com/java/technologies/javase-jdk16-downloads.html](https://www.oracle.com/java/technologies/javase-jdk16-downloads.html) 下载并安装适合您操作系统的Oracle JDK 16。

2. 使用jlink创建自定义JRE映像(可选)

jlink是Java 9引入的工具,允许您创建一个只包含所需模块的定制的JRE镜像。这可以有效减小打包的EXE文件大小。

使用jlink创建定制的JRE映像,请执行以下命令:

```

jlink --output custom_jre_image --add-modules java.base,java.desktop,其他需要的模块

```

3. 使用jpackage将Java程序打包成EXE

运行以下命令,将您的Java应用程序打包成EXE文件:

```

jpackage --name your_app_name --input your_app_jar_folder --main-jar your_app.jar --main-class your_app.MainClassName --type app-image --dest output_directory

```

如果您在步骤2中创建了一个定制的JRE映像,请添加 `--runtime-image custom_jre_image_path` 选项:

```

jpackage --name your_app_name --input your_app_jar_folder --main-jar your_app.jar --main-class your_app.MainClassName --type app-image --runtime-image custom_jre_image_path --dest output_directory

```

结论

本教程向您展示了如何使用Launch4j和jpackage将Java程序打包成EXE文件。这两种方法都可以将Java程序打包成Windows特定的可执行文件,从而让用户更轻松地使用您的Java应用程序。请选择适合您需求的方法进行操作。