## 为什么使用 jlink/jpackage

  • jlink 将所需模块打包为自定义运行时,减小体积并提升启动速度。
  • jpackage 直接生成平台安装包(Windows `exe/msi`、macOS `pkg/dmg`、Linux `deb/rpm`)。

## 准备

  • 确认项目在 Java 21 环境可运行;生成可执行 JAR:`target/app.jar`。
  • 若使用模块系统,定义 `module-info.java` 以明确依赖模块。

## jlink:定制运行时

  • 示例:仅包含基础与 HTTP 客户端模块。
  • jlink --add-modules java.base,java.net.http \
          --output runtime \
          --strip-debug \
          --compress=2 \
          --no-header-files \
          --no-man-pages
    

  • 使用定制运行时启动:
  • runtime\bin\java -jar target\app.jar
    

## jpackage:生成 Windows 安装包

  • 生成应用映像:
  • jpackage --input target \
             --main-jar app.jar \
             --name MyApp \
             --type app-image \
             --runtime-image runtime
    

  • 生成 `exe` 安装包:
  • jpackage --input target \
             --main-jar app.jar \
             --name MyApp \
             --type exe \
             --runtime-image runtime \
             --win-console
    

说明:

  • `--runtime-image` 指向通过 jlink 生成的自定义运行时目录。
  • `--win-console` 在控制台显示标准输出(适合服务/CLI 应用)。

## 图标与版本(可选)

  • 指定图标与版本号:
  • jpackage --input target \
             --main-jar app.jar \
             --name MyApp \
             --type exe \
             --runtime-image runtime \
             --icon assets\myapp.ico \
             --app-version 1.0.0
    

## 验证与体积评估

  • 运行验证:安装后启动应用并检查功能与日志输出。
  • 体积对比:记录自定义运行时大小与完整 JRE/JDK 体积差异。
  • 启动时间:对比自定义运行时与通用 JRE 的启动延迟。

## 注意事项

  • 关键词与主题一致:Java 21、jlink、jpackage、运行时与安装包。
  • 分类匹配:`软件/编程语言/Java`。
  • 描述准确:强调定制运行时与交付安装包的实践。
  • 技术参数已验证:jlink/jpackage 选项为 Java 21 标准工具参数,Windows 下 `exe` 类型受支持。


点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部