当前位置:首页 > Java

java如何创建exe

2026-03-23 03:22:48Java

使用 Launch4j 将 Java 程序打包为 EXE

Launch4j 是一个跨平台工具,可以将 Java 应用程序包装为 Windows 可执行文件。它生成一个原生 EXE 启动器,自动查找和捆绑 JRE。

下载并安装 Launch4j 后,打开工具并配置以下基本选项:

  • Output file:指定生成的 EXE 文件路径(如 C:\output\MyApp.exe)。
  • Jar:选择你的应用程序 JAR 文件。
  • Min JRE version:设置最低要求的 JRE 版本(如 1.8.0)。

JRE 选项卡中,可以指定 JRE 的搜索路径或捆绑自定义 JRE。勾选 Bundled JRE path 并填写相对路径(如 ./jre),确保目标机器无需预装 Java。

使用 JPackage(JDK 14+)

JPackage 是 JDK 自带的打包工具,支持生成包含 JRE 的 EXE 安装包。以下是一个基本命令示例:

jpackage --name MyApp --input target/ --main-jar myapp.jar --main-class com.example.Main --type exe

关键参数说明:

  • --input:包含 JAR 文件的目录。
  • --main-jar:主 JAR 文件名。
  • --main-class:主类全限定名(可选,若 JAR 有 Manifest 则不需要)。
  • --type:指定输出类型为 exe

添加 --win-console 可保留控制台窗口。若要生成安装程序,使用 --win-dir-chooser 允许用户选择安装目录。

使用 Excelsior JET 进行编译

Excelsior JET 是一款商业工具,能将 Java 程序编译为原生 EXE,无需 JRE。安装后通过以下步骤操作:

在项目目录运行初始化命令:

jetcli --init

编辑生成的 jetproject 文件,指定主类和依赖项。编译命令:

jetcli --build jetproject

生成的 EXE 默认位于 ./jet/build 目录。此方法适合性能敏感型应用,但需注意部分动态特性(如反射)可能需要额外配置。

通过 Inno Setup 创建安装包

若需分发包含 JRE 的完整安装包,可用 Inno Setup 打包:

  1. 准备目录结构:

    /dist
      /app
        myapp.jar
      /jre
        (JRE 文件)
  2. 编写 Inno Setup 脚本(.iss 文件):

    
    [Setup]
    AppName=MyApp
    OutputDir=output
    OutputBaseFilename=MyAppSetup
    DefaultDirName={pf}\MyApp

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

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

java如何创建exe


3. 使用 Inno Setup 编译器生成安装程序,用户安装后将自动包含私有 JRE。

### 注意事项

- JRE 依赖:除非使用 Excelsior JET 或捆绑 JRE,否则目标机器需安装匹配版本的 Java。
- 控制台应用:GUI 程序应确保配置为不显示控制台窗口(Launch4j 中取消勾选 Header type 的 `console`)。
- 签名:为 EXE 文件添加代码签名证书可避免安全警告,使用工具如 Signtool:
  ```bash
  signtool sign /f mycert.pfx /p password /t http://timestamp.digicert.com MyApp.exe

每种方法适用于不同场景:开发测试推荐 Launch4j,正式分发建议 JPackage 或 Inno Setup,高性能需求考虑 Excelsior JET。

标签: javaexe
分享给朋友:

相关文章

java程序如何运行

java程序如何运行

编写Java代码 使用文本编辑器或IDE(如IntelliJ IDEA、Eclipse)编写Java源代码,保存为.java文件。例如: public class HelloWorld {…

java如何删除文件

java如何删除文件

删除文件的基本方法 使用 java.io.File 类的 delete() 方法可以删除文件。如果文件存在且删除成功,返回 true;否则返回 false。 import java.io…

如何安装java环境

如何安装java环境

下载JDK安装包 访问Oracle官方网站或OpenJDK项目页面,选择适合操作系统的JDK版本(如Windows、macOS或Linux)。确保下载与系统架构匹配的版本(32位或64位)。 运行安…

java前景如何

java前景如何

Java 当前的市场需求 Java 在企业级开发、大数据、云计算等领域仍占据重要地位。许多大型企业(如银行、电商平台)依赖 Java 构建后端系统。招聘平台数据显示,Java 开发岗位数量稳定,尤其在…

java如何连接mysql

java如何连接mysql

连接 MySQL 数据库的基本步骤 添加 MySQL 驱动依赖 在项目中引入 MySQL 的 JDBC 驱动。如果使用 Maven,在 pom.xml 中添加以下依赖: <dependency…

java如何打印数组

java如何打印数组

打印数组的方法 在Java中,打印数组有多种方式,以下是几种常见的方法: 使用Arrays.toString()方法 这种方法适用于一维数组,可以快速将数组转换为字符串形式输出: int[] a…