杰瑞科技汇

java怎么导出exe文件怎么打开

Java 程序本身不能直接编译成一个纯粹的 .exe 文件。 因为Java的核心思想是“一次编写,到处运行”(Write Once, Run Anywhere)。.exe文件是Windows平台特有的可执行文件格式。

java怎么导出exe文件怎么打开-图1
(图片来源网络,侵删)

我们通常说的“导出exe”,其实是指将Java程序和它所依赖的JRE(Java运行环境)打包在一起,生成一个可以在Windows上直接点击运行的、带有图标的可执行文件,这个.exe文件本质上是一个“启动器”或“打包器”,它会自动加载内部的JRE来运行你的Java代码。

下面我将介绍几种主流的方法,从最简单到最专业。


使用工具打包(最推荐,最简单)

这是最常用、最简单的方法,适合绝大多数开发者,我们以 Launch4j 为例,这是一个非常经典且好用的工具。

第1步:准备工作

  1. 编译你的Java程序:确保你的Java项目已经编译完成,生成了 .class 文件,并且可以正常通过 java -cp 命令运行。
  2. 打包成JAR文件:这是打包成 .exe 的前提,你需要将所有 .class 文件和依赖的第三方库(.jar)打包成一个可执行的JAR文件。
    • 如果你使用Maven或Gradle,构建工具会自动帮你处理。
    • 如果你手动管理,可以使用以下命令:
      # 创建一个目录存放所有文件
      mkdir myapp_lib
      # 将你的主类编译后的.class文件和所有依赖的.jar文件复制到myapp_lib
      # 假设你的主类是 com.example.Main
      jar cvfe MyApp.jar com.example.Main -C myapp_lib .
      • -c: 创建新的JAR档案
      • -v: 生成详细输出
      • -f: 指定JAR文件名
      • -e: 指定入口点(主类的全限定名)
      • -C myapp_lib .: 表示进入 myapp_lib 目录,并将其中所有内容打包到JAR中。

第2步:使用Launch4j打包

  1. 下载并安装Launch4j:从官网 http://launch4j.sourceforge.net/ 下载并安装。

    java怎么导出exe文件怎么打开-图2
    (图片来源网络,侵删)
  2. 配置Launch4j

    • 打开 launch4j.exe
    • "Basic" 标签页
      • outfile: 选择你希望生成的 .exe 文件的路径和名称(C:\MyApp\MyApp.exe)。
      • dontWrapJar: 不要勾选,我们就是要包装JAR文件。
      • jar: 点击按钮,选择你刚刚生成的 MyApp.jar 文件。
      • icon: 选择一个 .ico 格式的图标文件,给你的程序一个自定义图标。
      • headerType: 通常选择 gui(图形界面)或 console(控制台),如果你的程序有命令行窗口,选 console;如果不想看到黑框,选 gui
    • "JRE" 标签页
      • Min. JRE version: 设置你的程序最低需要的Java版本(8.0_321)。
      • bundled JRE path: 这是关键! 点击按钮,选择你提前下载好的、与你的程序兼容的JRE的根目录C:\Program Files\Java\jdk-11.0.13 或者 C:\Java\jre-1.8.0_321),Launch4j会将这个JRE一起打包进 .exe 文件中,这样目标机器上就不需要安装Java了。
    • "Preferences" 标签页
      • Priority: 可以设置进程优先级。
      • Stay alive: 如果你的程序运行后窗口会关闭,可以勾选此项,让程序窗口保持打开。
      • Variables: 可以设置传递给JVM的参数,-Xmx512m(设置最大堆内存)。
  3. 生成 .exe 文件

    • 点击工具栏上的保存图标(或 File -> Save),保存你的配置文件(.xml.launch4j)。
    • 点击工具栏上的齿轮图标(或 Project -> Build Wrapper),Launch4j会开始打包。
    • 完成后,你就能在指定的 outfile 路径下找到你的 MyApp.exe 文件了。

第3步:如何打开/运行

生成的 .exe 文件可以直接通过以下方式运行:

  1. 双击运行:直接像打开普通软件一样双击 MyApp.exe
  2. 命令行运行:在命令行中切换到 .exe 文件所在的目录,然后输入 MyApp.exe 并回车。
  3. 右键运行:右键点击 .exe 文件,选择“打开”。

使用高级打包工具(更现代,功能更强)

Launch4j比较底层,现在有很多更现代的打包工具,它们集成了更多功能,比如创建安装程序、自动下载JRE等。

java怎么导出exe文件怎么打开-图3
(图片来源网络,侵删)

jpackage (Java 14+ 自带)

这是Oracle官方推出的打包工具,非常强大,可以直接生成安装程序(.msi)或便携式应用(.exe)。

优点

  • 官方支持,持续更新。
  • 功能强大,支持多种平台(Windows, macOS, Linux)。
  • 生成的安装程序体验更好。

缺点

  • 需要较新版本的JDK(14+)。

基本用法示例: 假设你的JAR文件是 MyApp.jar,主类是 com.example.Main

# 在Windows命令行中运行
jpackage --type exe --input . --dest . --name "My Awesome App" --main-jar MyApp.jar --main-class com.example.Main --app-version "1.0" --vendor "My Company" --win-shortcut --win-menu --win-dir-chooser
  • --type exe: 生成便携式 .exe 文件。
  • --input .: 指定输入目录(包含JAR和资源)。
  • --dest .: 指定输出目录。
  • --name "My Awesome App": 应用显示名称。
  • --main-jar MyApp.jar: 主JAR文件。
  • --main-class com.example.Main: 程序入口点。
  • --win-shortcut: 创建桌面快捷方式。
  • --win-menu: 添加到开始菜单。
  • --win-dir-chooser: 安装时允许用户选择安装目录。

运行后,它会生成一个 My Awesome App-1.0.exe 文件,你可以直接运行它来安装你的应用。

GraalVM Native Image (编译成本地代码)

这是最“硬核”的方法,它可以将Java代码真正编译成一个原生的、不依赖JRE的 .exe 文件。

优点

  • 极致的性能:启动速度极快,内存占用极低。
  • 真正的单文件:生成的 .exe 文件包含了所有运行时依赖,无需JRE。

缺点

  • 配置极其复杂:需要处理反射、JNI等特殊代码。
  • 编译时间长
  • 不是所有Java库都支持
  • 文件体积可能较大

如何打开: 生成的 .exe 文件和普通的Windows可执行文件一样,直接双击或命令行运行即可,它已经是一个独立的程序了。


总结与对比

方法 原理 优点 缺点 适用场景
Launch4j 打包JAR + JRE成一个EXE启动器 简单易用,成熟稳定,支持旧版Java 功能相对单一,JRE文件会增大EXE体积 需要快速生成一个独立的、可分发的EXE文件,不追求极致性能。
jpackage 官方工具,生成EXE或安装程序 功能强大,官方支持,生成体验好(如安装向导) 需要JDK 14+,配置稍复杂 希望生成专业的、类似商业软件的安装程序。
GraalVM Native Image 将Java代码编译成原生机器码 性能极致,启动快,内存占用低,无需JRE 配置复杂,兼容性问题,编译时间长 对性能有极致要求的场景,如微服务、命令行工具、高频交易等。

给初学者的建议

如果你是刚开始学习Java,并且想让你的朋友或家人在不安装Java的情况下运行你的程序,使用Launch4j是最简单、最直接的方法,它完美地平衡了易用性和功能性。

记住核心流程:Java代码 -> 编译成.class -> 打包成.jar -> 使用Launch4j等工具将.jar和JRE打包成.exe

分享:
扫描分享到社交APP
上一篇
下一篇