Springboot项目+JDK17打包exe
本文介绍了在Java17环境下,使用java14引入的jpackage工具,生成包含所有依赖的Java应用程序映像,包括支持Windows和macOS平台,包括exe、dmg和msi格式。
环境准备
使用 mvn package 打包成 jar
在项目下生成target目录,且包含打包成的jar(例如:standard-0.0.1-SNAPSHOT.jar),确认这个jar能使用”java -jar ***.jar”运行。用
idea2025打开项目,进入界面右侧的maven目录,使用嗯项目的lifecycle目录下的package。下载安装 JDK
JPackage指令是JAVA 14新增的,所以安装的JAVA版本必须14+,我是用的是 jdk-17.0.12_windows-x64_bin.zip。JDK17的环境变量配置:新增系统变量:JAVA_HOME,值为D:\IDEA\Java\jdk-17(安装路径); 新增系统变量:CLASSPATH,值为.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar,注意最前面的小黑点不能省. 在系统变量Path下新增两条配置:%JAVA_HOME%\bin和%JAVA_HOME%\jre\bin下载安装 wix314.exe
下载路径为:Release WiX Toolset v3.14找到
Assets下载即可。安装前需要在电脑的 控制面板 → 程序和功能 → 启用或关闭Windows功能 → 勾选.NET Framework 3.5 (包括 ,NET 2.0 和 3.0)→ 确定,等待执行完成。之后再双击下载的wix314.exe,正常安装。
JPackage 指令
打包exe(亲测有效)
1
.\jpackage --type exe --name csresUtil --input E:\WorkSpace\ByMyself\standard-util\target --main-jar standard-0.0.1-SNAPSHOT.jar --java-options "-Dserver.port=8888 -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005" --win-console --win-dir-chooser --win-shortcut --win-shortcut-prompt --dest E:\dist
打包msi
1
.\jpackage --type msi --win-dir-chooser --name csresUtil --app-image E:\dist --dest E:\distmsi
打包app-image
1
.\jpackage --type app-image --name import --input E:\WorkSpace\ByMyself\standard-util\target --main-jar standard-0.0.1-SNAPSHOT.jar --java-options "-Dserver.port=8888 -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005" --win-console --dest E:\dist
查看帮助:jpackage -h (以下Windows平台Java17下部分参数说明。 )
参数 作用 示例 说明 –type 打包类型 app-image 可选:”app-image”, “exe”, “msi”,这里使用app-image,选择另外两个选项需要安装WiX –name 应用名称 spring 打包后的名称,如”sping.exe” –input 输入目录 target 该目录所有文件打包到应用目录中 –main-jar 应用主jar spring-1.0.jar –input目录里的jar程序 -icon 指定图标 -icon 指定图标(如:avatar.ico) –win-console 运行时启动控制台 –win-console 打开应用程序时,打开控制台。如果不启用在后台运行,关闭只能从任务管理器中结束任务 –win-dir-chooser 在安装程序的时候可以选安装目录 –win-dir-chooser 在安装程序的时候可以选安装目录 –win-shortcut 创建桌面快捷方式 –win-shortcut 创建桌面快捷方式 –win-shortcut-prompt 在安装程序的时候可以选择是否创建桌面快捷方式 –win-shortcut-prompt 在安装程序的时候可以选择是否创建桌面快捷方式 –dest 输出目录 dist 输出到该目录,不要和–input同个目录,否则会无限循环复制目录 
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Southern Fish!



