本文介绍了在Java17环境下,使用java14引入的jpackage工具,生成包含所有依赖的Java应用程序映像,包括支持Windows和macOS平台,包括exe、dmg和msi格式。

环境准备

  1. 使用 mvn package 打包成 jar

    在项目下生成target目录,且包含打包成的jar(例如:standard-0.0.1-SNAPSHOT.jar),确认这个jar能使用”java -jar ***.jar”运行。用idea2025打开项目,进入界面右侧的maven目录,使用嗯项目的lifecycle目录下的package

  2. 下载安装 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
    
  3. 下载安装 wix314.exe

    下载路径为:Release WiX Toolset v3.14找到Assets下载即可。安装前需要在电脑的 控制面板 → 程序和功能 → 启用或关闭Windows功能 → 勾选.NET Framework 3.5 (包括 ,NET 2.0 和 3.0) → 确定,等待执行完成。之后再双击下载的wix314.exe,正常安装。

JPackage 指令

  1. 打包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
  2. 打包msi

    1
    .\jpackage --type msi --win-dir-chooser --name csresUtil --app-image E:\dist --dest E:\distmsi
  3. 打包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
  4. 查看帮助: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同个目录,否则会无限循环复制目录