Java学习——使用jpackage把jar文件打包为可执行的exe文件
前言:最近在写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)。
- Windows:
-
消除 JRE 依赖
打包后的应用包含嵌入式 JRE,用户无需单独安装 Java 环境,大幅降低使用门槛。 -
自定义安装体验
- 设置应用名称、版本、版权信息(
--name
,--app-version
,--copyright
)。 - 配置桌面快捷方式(
--win-shortcut
)、开始菜单入口(--win-menu
)及安装目录选择(--win-dir-chooser
)。 - 指定应用图标(
--icon
),支持.ico
(Windows)、.icns
(macOS)等格式。
- 设置应用名称、版本、版权信息(
-
支持模块化与非模块化应用
- 兼容基于 JPMS 的模块化应用(
--module
)和传统 JAR 应用(--main-jar
)。
- 兼容基于 JPMS 的模块化应用(
⚙️ 二、典型使用场景
- 桌面应用程序分发
将 JavaFX 或 Swing 开发的 GUI 应用打包为原生安装包,提供与本地应用一致的安装和运行体验。 - 命令行工具部署
打包无界面的 Java 命令行工具(如数据处理脚本),通过--win-console
生成控制台启动器。 - 企业级服务分发
适用于需独立运行的服务器应用(如微服务),通过--launcher-as-service
注册为系统服务。