前言:最近在写Java的飞机大战小游戏,写到最后我就想如果每次打开游戏都要这么繁琐(指打开cmd—>输入命令)那对于没有Java基础的人来说是一种烦恼,所以便研究怎么打包成exe文件,这样也防止被他人反编译,于是有了今天的文章
jpackage 是 Java 平台中一个用于打包和分发独立应用程序的工具,自 JDK 14 起作为正式特性(JEP 343)引入。其主要目的是解决 Java 应用分发时的环境依赖问题,让用户无需预装 JRE 即可运行 Java 程序。以下是其核心功能和应用场景的概述:
📦 一、核心功能
生成自包含安装包
jpackage 将 Java 应用、依赖库及 JRE 运行时打包为平台特定的安装程序,支持以下格式:
Windows:.exe(可执行安装程序)或 .msi(Microsoft Installer)。
macOS:.dmg(磁盘映像)或 .pkg(安装包)。
Linux:.deb(Debian/Ubuntu)或 .rpm(Red Hat/Fedora)。
消除 JRE 依赖
打包后的应用包含嵌入式 JRE,用户无需单独安装 Java 环境,大幅降低使用门槛。
自定义安装体验
设置应用名称、版本、版权信息(--name, --app-version, --copyright)。
配置桌面快捷方式(--win-shortcut)、开始菜单入口(--win-menu)及安装目录选择(--win-dir-chooser)。
指定应用图标(--icon),支持 .ico(Windows)、.icns(macOS)等格式。
支持模块化与非模块化应用
兼容基于 JPMS 的模块化应用(--module)和传统 JAR 应用(--main-jar)。
⚙️ 二、典型使用场景
桌面应用程序分发
将 JavaFX 或 Swing 开发的 GUI 应用打包为原生安装包,提供与本地应用一致的安装和运行体验。
命令行工具部署
打包无界面的 Java 命令行工具(如数据处理脚本),通过 --win-console 生成控制台启动器。
企业级服务分发
适用于需独立运行的服务器应用(如微服务),通过 --launcher-as-service 注册为系统服务。
⚠️ 三、使用前提
JDK 版本:需 JDK 14 或更高版本。
平台工具依赖:
Windows:需安装 WiX Toolset 3.0+(用于生成 .msi)。
macOS:需 pkgbuild 和 productbuild(Xcode 命令行工具)。
Linux:需 dpkg 或 rpmbuild(根据目标格式)。
💡 四、简单示例(Windows 平台)
jpackage
--input ./input_dir # 包含 JAR 的目录
--name MyApp # 应用名称
--main-jar app.jar # 主 JAR 文件
--type exe # 输出类型(exe/msi)
--icon app.ico # 应用图标
--win-console # 启用控制台窗口
--win-shortcut # 创建桌面快捷方式
运行后生成 MyApp-1.0.exe,用户双击即可安装并运行应用。
💎 总结
jpackage 填补了 Java 应用分发的关键空白,通过生成自包含、用户友好的安装包,显著提升了 Java 应用的部署效率和用户体验。尤其适合需跨平台分发或面向非技术用户的场景,是现代化 Java 开发中不可或缺的工具。
示例命令代码:
jpackage --verbose --type exe --name 飞机大战小游戏 --input D:input --main-jar game.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 D:output_folder --icon icon.ico
以下是对你提供的 jpackage 命令的逐参数解析,结合其功能及注意事项进行详细说明:
🧩 命令整体功能
此命令用于将 Java 应用(game.jar)打包成 Windows 可执行安装程序(.exe),包含嵌入式 JRE、自定义 JVM 参数、安装界面选项及调试支持,生成文件输出到 D:output_folder。
🔍 参数详解
1. 基础配置参数
| 参数 | 含义 | 示例值/说明 | 来源 |
|---|---|---|---|
--verbose |
启用详细日志模式,便于调试打包过程中的错误 | 输出每一步操作日志 | |
--type exe |
指定输出类型为 Windows 可执行安装程序 | 也可选 msi |
|
--name |
设置应用名称,影响安装包文件名、开始菜单项及注册表键名 | 飞机大战小游戏 → 安装包名为 飞机大战小游戏-1.0.exe |
|
--input |
输入目录路径,包含所有需打包的文件(JAR、资源等) | D:input 需包含 game.jar |
|
--main-jar |
主 JAR 文件路径(相对于 --input 目录) |
game.jar 需在 D:input 内 |
|
--dest |
输出目录路径,存放生成的安装包 | D:output_folder |
|
--icon |
应用图标文件(Windows 必须为 .ico 格式) |
icon.ico 需在当前目录或绝对路径 |
2. JVM 运行时参数
--java-options "-Dserver.port=8888 -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005"
作用:传递 JVM 启动参数
-Dserver.port=8888:设置系统属性,应用可通过 System.getProperty("server.port") 读取端口
-Xdebug -Xrunjdwp:...:启用 远程调试
transport=dt_socket:使用 Socket 通信
server=y:JVM 作为调试服务端
suspend=n:启动时不暂停,等待调试器连接
address=5005:监听 5005 端口
来源:
3. Windows 专属安装选项
| 参数 | 功能 | 用户体验 | 来源 |
|---|---|---|---|
--win-console |
为应用创建控制台窗口(适合命令行/日志输出型应用) | 运行 EXE 时弹出命令提示符窗口 | |
--win-dir-chooser |
安装时显示目录选择对话框 | 用户可自定义安装路径 | |
--win-shortcut |
在桌面创建快捷方式 | 安装后桌面生成 飞机大战小游戏.lnk |
|
--win-shortcut-prompt |
安装过程中询问用户是否创建快捷方式 | 弹窗提示选择“是/否” |
⚠️ 关键注意事项
图标文件 (icon.ico)
必须为标准 ICO 格式,且包含多分辨率(16×16, 32×32, 256×256 等)
若报错 `选项 https://icofx.ro/)重新生成 ICO 文件。
WiX 工具集依赖
Windows 打包需预装 WiX 3.11+ 并配置环境变量(light.exe, candle.exe 必须在 PATH 中)
未安装时报错:找不到 WiX 工具 → https://wixtoolset.org/ 并安装。
路径问题
--input D:input 中的路径需存在且包含 game.jar,否则打包失败
--icon icon.ico 默认从当前工作目录查找 → 建议改用绝对路径(如 D:iconsapp.ico)。
调试参数的风险
-Xdebug 会降低运行时性能,正式发布时应移除此参数。
💎 命令修正建议
jpackage --verbose
--type exe
--name "飞机大战小游戏"
--input "D:input" # 确保此目录存在且含 game.jar
--main-jar game.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 "D:output_folder"
--icon "D:absolute_pathicon.ico" # 改用绝对路径避免路径错误
📊 参数功能速查表
| 类别 | 参数 | 是否必需 | 常见问题 |
|---|---|---|---|
| 基础配置 | --type --name --input --main-jar |
必需 | 输入目录不存在/JAR 路径错误 |
| 安装行为 | --win-shortcut --win-dir-chooser |
可选 | WiX 未安装导致失败 |
| 运行时 | --java-options |
可选 | 调试参数影响性能 |
| 资源 | --icon |
推荐 | ICO 格式无效 |
经此配置后,生成的
飞机大战小游戏-1.0.exe将包含 JRE、支持远程调试,且安装过程提供目录选择与快捷方式提示。若仍遇图标问题,优先验证 ICO 文件合规性及 WiX 安装状态。

















暂无评论内容