Loading...

Java打包exe教程

常见的打包工具比较

  • Java Package:依赖JRE和Libs(jar集合)环境运行,对于具有大量依赖的复杂项目,手动管理JAR文件的依赖关系和类路径设置可能会变得复杂和困难。无法支持程序更新时变更环境。
  • exe4j:exe4j是一个Windows平台特定的工具(商业软件),因此仅适用于Windows操作系统。如果你的应用程序需要在其他操作系统上运行,你需要另外寻找其他工具或解决方案。exe4j本身并不提供Java运行时环境(JRE),因此你需要先确保在打包应用程序之前已经正确安装了jdk17。
  • GraalVM:GraalVM需要单独的安装和配置过程。这可能对开发人员和部署过程带来额外的复杂性和工作量。GraalVM是AOT编译器,不支持反射技术,针对使用了反射的类需要特殊标记,在Spring框架中,反射被广泛使用,标记反射过于繁琐,也有可能出现依赖丢失环境不兼容等情况。
  • jpackage:由于Spring Boot 2.x是构建在Java平台上的,因此使用jpackage可以很好地与Spring Boot项目集成,同时也可以包含JavaFX界面。JDK 17为了更好地支持JavaFX,将JavaFX模块纳入了JDK中。使用jpackage进行打包时,你可以指定应用程序的相关选项,例如入口类、依赖项和运行时镜像。通过执行jpackage命令,你可以生成适用于不同操作系统的可执行文件或安装程序。

jpackage描述

jpackage工具以 Java 应用程序和 Java 运行时映像作为输入,并生成包含所有必要依赖项的 Java 应用程序映像。它将能够生成特定于平台的格式的本机包,例如 Windows 上的 exe 或 macOS 上的 dmg。每种格式都必须在其运行的平台上构建,没有跨平台支持。该工具将具有允许以各种方式自定义打包应用程序的选项。

前期准备

1、安装jdk14+以上

2、下载并安装Wix.exe 工具,不然会报:“找不到 WiX 工具 (light.exe, candle.exe)”的错误。具体下载安装教程请往下看

3、SpringBoot 2.x项目运行maven将项目打包成jar

打包过程

本文将使用win11系统打包,打开cmd终端控制台,进入到项目打包的target目录下,运行:

打包exe安装程序

打包exe需要安装Wix.exe

jpackage --name cabin --type exe --input D:/WorkProjects/mute-cabin-manager/target --main-jar cabin.jar --java-options "-Dfile.encoding=utf-8 -Xms2048m -Xms2048m" --win-console --win-dir-chooser --win-shortcut-prompt --dest D:\WorkProjects

打包app-image

打包app-image无需安装Wix.exe ,可直接运行。如要制作安装包也可使用inno setup 制作可安装程序。参考《JavaFx打包成exe》这篇文章有介绍

jpackage --name cabin --type app-image --input D:/WorkProjects/mute-cabin-manager/target --main-jar cabin.jar --java-options "-Dfile.encoding=utf-8 -Xms2048m -Xms2048m" --win-console --win-dir-chooser --win-shortcut-prompt --dest D:\WorkProjects

Wix.exe工具下载及安装

下载

直接附下载链接: https://github.com/wixtoolset/wix3/releases/tag/wix3141rtm

202407091608186115.webp

安装

安装wix314.exe需要.NET 3.5环境,打开控制面板->程序和功能->启用或关闭Windows功能->勾选.NET Framework 3.5

202407091622597506.webp

202407091623442583.webp

202407091624129669.webp

随后让Windows自己更新下载就好了

202407091624431177.webp

设置完后点击 wix314.exe Install安装,随后就可以使用jpackage

202407091625386193.webp

jpackage命令参数说明

参数描述示例说明
--type打包类型exe"app-image","exe","msi","rpm","deb","pkg","dmg"
--name打包名称cabin打包后的exe名称
--input输入目录target需要打包的目录
--main-jar启动jar包cabin.jar主程序jar包
--icon应用图标cabin.ico指定的icon格式图标
--win-console显示控制台应用程序运行时打开控制台
--win-shortcut桌面快捷方式安装时创建桌面快捷方式
--dest输出目录D:\WorkProjects指定exe输出的目录


0

回到顶部