如何在Windows系统上使用JPackage打包生成RPM/DEB/PKG格式安装包
问题根因
JPackage 不支持跨操作系统生成目标平台的安装包,官方文档中列出的 rpm、deb、pkg 等合法格式,是对应各自操作系统下的支持范围:
- Windows 平台仅支持生成 exe、msi 格式安装包
- Linux 平台支持生成 rpm、deb 等 Linux 专属格式
- macOS 平台支持生成 pkg、dmg 等苹果专属格式
你在 Windows 环境下调用 rpm 类型参数自然会报不支持的错误。
解决方案
方案1:使用WSL2构建Linux安装包
这是Windows环境下生成Linux安装包最便捷的方案:
- 先开启Windows的WSL2功能,安装对应目标格式的Linux发行版:生成rpm包选Fedora/CentOS,生成deb包选Ubuntu/Debian
- 在WSL2的Linux环境中安装JDK14及以上版本(自带jpackage工具),再安装对应打包依赖:
生成rpm包需执行:sudo dnf install rpm-build
生成deb包需执行:sudo apt install dpkg-dev fakeroot - 将你的jar包和资源文件复制到WSL2文件系统中,注意Windows盘符在WSL2中默认挂载在
/mnt/路径下,比如原D盘路径D:\dev\IdeaProjects\fblaproj\out\artifacts\fbla_gui_jar对应WSL2路径为/mnt/d/dev/IdeaProjects/fblaproj/out/artifacts/fbla_gui_jar - 在Linux终端中执行你原来的jpackage命令即可正常生成rpm/deb包。
方案2:使用Docker容器构建
不想装WSL2可以用Docker快速构建:
- 拉取对应Linux发行版的官方镜像
- 在容器内安装JDK和对应打包依赖,将本地存放jar包的目录挂载到容器内
- 在容器中执行jpackage命令,生成的安装包会直接存到本地挂载目录中。
关于macOS PKG包注意
pkg是苹果专属安装包格式,依赖macOS专属的工具链,不管是WSL2还是Docker都无法在Windows环境下生成,必须在macOS系统中运行jpackage才可以生成pkg格式安装包。
内容的提问来源于stack exchange,提问作者Ben Schreiber
相关产品推荐
相关产品推荐

