杰瑞科技汇

Java如何导出EXE及打开文件?

Java 不是直接导出成 .exe 文件的

最重要的一点是:Java 程序的本质不是 .exe 文件

Java如何导出EXE及打开文件?-图1
(图片来源网络,侵删)
  • Java 程序的运行方式:Java 代码被编译成一种叫做 字节码 的中间格式,文件扩展名是 .class,这个 .class 文件可以在任何安装了 Java 虚拟机 的操作系统上运行(如 Windows, macOS, Linux)。
  • .exe 文件的作用.exe 是 Windows 系统下的 可执行文件,它通常是原生代码(如 C/C++)编译而成的,直接由 Windows 操作系统加载和执行。

为什么我们总听说要把 Java 程序打包成 .exe 呢?

这是因为最终用户(你的客户)通常没有安装 JDK 或 JRE,他们不知道如何通过命令行运行 Java 程序,我们所谓的“导出 .exe”,其实是创建一个 “启动器”“包装器”,这个 .exe 文件本身并不包含你的 Java 代码,它只是一个“外壳”,它的作用是:

  1. 检查目标电脑是否安装了 JRE。
  2. 如果没有,可以引导用户下载或自带一个 JRE。
  3. 如果有,它会调用 java.exe 来运行你的 .jar 文件。

最主流和推荐的方式(导出为可执行的 .jar 文件)

这是 Java 社区最标准、最跨平台的方式,你的程序最终被打包成一个 .jar 文件,用户双击即可运行(前提是他们系统关联了 .jar 文件)。

步骤 1:将你的 Java 项目打包成 .jar 文件

你需要一个清单文件来告诉 JVM 程序的入口点(main 方法)。

Java如何导出EXE及打开文件?-图2
(图片来源网络,侵删)
  1. 创建 MANIFEST.MF 文件 在你的项目 src 目录下创建一个 META-INF 文件夹,并在里面创建一个 MANIFEST.MF 文件,内容如下:

    Manifest-Version: 1.0
    Main-Class: com.yourcompany.yourproject.MainApplication

    注意

    • Main-Class 后面跟的是你的主类的 完整类名(包括包路径)。
    • 文件末尾必须有一个空行,否则在某些情况下可能无法识别。
  2. 使用 IDE(如 IntelliJ IDEA 或 Eclipse)导出IntelliJ IDEA 为例:

    • 点击 File -> Project Structure...
    • 选择 Artifacts,点击 号,选择 JAR -> From modules with dependencies
    • 在弹出的窗口中:
      • Main Class: 选择你的主类。
      • Build on make: 勾选。
      • Manifest: 确保选择了你刚才创建的 MANIFEST.MF 文件。
    • 点击 OKApply
    • 回到主界面,点击 Build -> Build Artifacts...,选择你刚刚创建的 artifact,然后点击 Build
    • 构建成功后,你会在 out/artifacts 目录下找到生成的 .jar 文件。
  3. 使用 Maven/Gradle(专业项目推荐) 如果你使用 Maven,可以在 pom.xml 中配置 maven-assembly-pluginmaven-shade-plugin 来生成可执行的 JAR,Gradle 则可以使用 application 插件和 shadow 插件。

    Java如何导出EXE及打开文件?-图3
    (图片来源网络,侵删)

步骤 2:如何运行(打开)生成的 .jar 文件

  • 直接双击:在 Windows 系统中,JRE 安装正确且 .jar 文件关联了 Java,双击即可运行。
  • 命令行运行:打开命令提示符(CMD)或 PowerShell,进入 .jar 文件所在的目录,然后输入:
    java -jar YourProgramName.jar

创建一个 .exe 包装器(真正意义上的“导出 exe”)

如果你必须提供一个 .exe 文件(为了满足特定用户习惯或简化分发),可以使用第三方工具来创建一个包装器。

工具推荐:Launch4j

Launch4j 是一个免费的、跨平台的工具,专门用于将 Java 启动程序打包成 Windows 原生可执行文件(.exe)。

使用 Launch4j 的步骤:

  1. 准备工作

    • 你已经按照 方案一 的步骤,成功生成了你的可执行 .jar 文件(YourProgramName.jar)。
    • 下载并安装 Launch4j。
  2. 配置 Launch4j

    • 打开 Launch4j,你会看到一个图形化配置界面。
    • Basic settings (基本设置):
      • Output file: 选择你希望生成的 .exe 文件的名称和保存位置(YourProgram.exe)。
      • Jar: 点击 "Browse...",选择你刚刚生成的 YourProgramName.jar 文件。
      • Icon: (可选)为你的 .exe 文件设置一个自定义图标。
      • Don't wrap JAR: 勾选此项,这意味着 Launch4j 会创建一个启动器,而不是把 JAR 内容解压到 exe 里,这样 exe 文件体积会小很多。
    • JRE (Java 运行环境设置):
      • Min. JRE version: 设置你的程序最低需要的 JRE 版本(8.0_321)。
      • Path: 你可以在这里指定一个包含 JRE 的文件夹路径,当用户运行你的 .exe 时,它会优先使用这个路径下的 JRE,你可以把 JRE 文件夹和你的 .exe 文件一起打包,实现“自带 JRE”。
    • Header type (头部类型):
      • 选择 gui(图形界面)或 console(控制台),如果你的程序有图形窗口,就选 gui
  3. 构建

    • 点击 Launch4j 工具栏上的 "Compile" 按钮。
    • 成功后,你会在指定的输出目录下得到 YourProgram.exe 文件。

如何运行(打开)这个 .exe 文件

  • 直接双击:和运行普通 .exe 文件一样,直接双击即可,Launch4j 会自动在后台调用 java.exe 来运行你的 JAR。
  • 分发:在打包给用户时,最好将你的 .exe 文件和它依赖的 JRE 文件夹一起放在一个文件夹里,并告知用户直接运行 .exe 文件即可。

总结与对比

特性 导出 .jar 文件 使用 Launch4j 导出 .exe
本质 Java 标准分发格式 Windows 下的包装器
跨平台性 极佳,一个 .jar 文件可在 Windows, macOS, Linux 上运行。 ,仅限 Windows 系统。
文件体积 较小,只包含编译后的代码和资源。 较大,因为需要包含一个 .exe 启动器,如果自带 JRE,体积会非常大。
依赖管理 依赖用户系统安装的 JRE,可以引导用户安装。 可以自带 JRE,实现“开箱即用”,但会增加分发体积。
用户友好度 对普通用户可能不友好,需要双击或命令行运行。 非常高,用户习惯于双击 .exe 文件,体验和原生软件一样。
推荐场景 绝大多数情况,特别是开源项目、跨平台应用、服务器应用。 需要分发给对技术不熟悉的 Windows 用户,或希望提供“原生”体验时。

对于学习和大多数项目,强烈推荐你掌握方案一(导出 .jar 文件),这是 Java 的精髓所在。

只有在明确知道你的用户只使用 Windows,并且你希望给他们提供最简单的使用体验时,才考虑使用方案二(Launch4j)来生成一个 .exe 包装器。

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