## 为什么使用 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` 类型受支持。

发表评论 取消回复