当前位置:首页 > Java

如何把java打包成exe

2026-04-09 05:11:26Java

使用 Launch4j 工具打包

Launch4j 是一个跨平台工具,可以将 Java 应用程序打包为 Windows 可执行文件(.exe)。它支持嵌入 JRE,确保在没有 Java 环境的机器上运行。

下载并安装 Launch4j,打开后配置以下参数:

  • Output file:指定生成的 .exe 文件路径。
  • Jar:选择需要打包的 Java JAR 文件。
  • Min JRE version:设置最低 JRE 版本要求。
  • Icon(可选):为 .exe 文件添加自定义图标。

勾选 Wrap JAR 选项以确保 JAR 文件嵌入到 .exe 中。点击 Build wrapper 生成可执行文件。

使用 JPackage(JDK 14+)

JPackage 是 JDK 14 引入的官方工具,支持将 Java 应用打包为原生可执行文件,包括 Windows 的 .exe 格式。

确保 JDK 14 或更高版本已安装,运行以下命令:

jpackage --input target/ --name MyApp --main-jar myapp.jar --main-class com.example.Main --type exe
  • --input:指定包含 JAR 文件的目录。
  • --name:设置生成的 .exe 文件名。
  • --main-jar:指定主 JAR 文件。
  • --main-class(可选):指定主类(如果 JAR 清单未定义)。
  • --type:指定输出类型为 exe

JPackage 会自动打包依赖项,并可选择包含自定义 JRE。

使用 Excelsior JET 编译为原生代码

Excelsior JET 是一个商业工具,能将 Java 应用编译为原生机器码,生成真正的 .exe 文件,无需 JRE。

安装 Excelsior JET 后,使用其图形界面或命令行工具:

  1. 创建新项目,选择主 JAR 文件。
  2. 配置编译选项(如目标平台、优化级别)。
  3. 选择 Build 生成原生 .exe 文件。

此方法性能更高,但需要商业许可。

使用 Inno Setup 创建安装包

若需分发包含 JRE 的完整安装包,可使用 Inno Setup 工具。先将 JAR 和 JRE 打包,再通过脚本生成安装程序。

示例脚本(.iss 文件):

[Setup]
AppName=MyJavaApp
AppVersion=1.0
DefaultDirName={pf}\MyJavaApp
OutputDir=output
OutputBaseFilename=MyJavaApp_Setup

[Files]
Source: "myapp.jar"; DestDir: "{app}"
Source: "jre\*"; DestDir: "{app}\jre"; Flags: recursesubdirs

[Icons]
Name: "{group}\My App"; Filename: "{app}\jre\bin\javaw.exe"; Parameters: "-jar ""{app}\myapp.jar"""

编译脚本后,生成包含 JRE 和 .exe 启动器的安装程序。

如何把java打包成exe

注意事项

  • 若目标机器无 Java 环境,建议嵌入 JRE 或使用 JPackage/Excelsior JET。
  • 检查依赖项是否完整打包,避免运行时缺失类库。
  • 测试生成的 .exe 文件在不同 Windows 版本上的兼容性。

标签: javaexe
分享给朋友:

相关文章

java如何运行程序

java如何运行程序

运行Java程序的步骤 安装Java开发工具包(JDK) 确保系统已安装JDK,可通过命令行输入java -version和javac -version验证。若未安装,需从Oracle官网下载并配置环…

java如何实现异步

java如何实现异步

Java实现异步的方法 Java中实现异步编程可以通过多种方式,每种方式适用于不同的场景和需求。以下是常见的实现方法: 使用Thread类 创建新线程执行异步任务是最基础的方式。通过继承Thread…

如何搭建java开发环境

如何搭建java开发环境

下载并安装JDK 从Oracle官网或OpenJDK下载适合操作系统的JDK版本。运行安装程序并按照提示完成安装,建议选择默认路径以减少配置复杂度。 配置环境变量 在系统环境变量中添加JAVA_HO…

java如何调用另一个类的方法

java如何调用另一个类的方法

调用另一个类的方法 在Java中调用另一个类的方法,通常需要创建该类的对象或直接通过类名调用(静态方法)。以下是几种常见的方式: 通过对象实例调用实例方法 创建一个目标类的对象,通过对象调用其方法。…

java实现vue接口

java实现vue接口

Java 实现 Vue 接口的方法 在 Java 中实现 Vue 前端调用的接口,通常需要使用 Spring Boot 框架构建 RESTful API。以下是具体的实现步骤和代码示例。 创建 Sp…

java js实现转盘抽奖

java js实现转盘抽奖

实现转盘抽奖的步骤 HTML结构 创建转盘抽奖的基本HTML结构,包括转盘区域和抽奖按钮。 <div id="wheel"> <canvas id="wheelCanvas"&…