You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将可执行jar转换为支持Windows、Linux、macOS的对应安装包?

实现方案总览

你可以通过原生工具或Maven集成插件两类方案完成可执行JAR到多系统安装包的转换,完全覆盖你提到的Windows exe、Linux rpm/deb、macOS运行环境的需求。

可用原生工具

  • jpackage:JDK16及以上版本内置的官方打包工具,无需额外安装,支持直接把可执行JAR打包为对应平台的安装包,会自动绑定适配的JRE环境,用户安装后无需单独部署Java环境即可运行。
    基础使用命令示例:
    # 不同操作系统运行该命令会自动生成对应平台的安装包
    jpackage --input ./jar存放目录 --name 你的应用名称 --main-jar 你的可执行文件.jar --main-class 主类全限定名 --type 安装包格式
    
    不同平台的type参数对应取值:
    • Windows平台填exe或msi
    • Linux平台填rpm或deb
    • macOS平台填dmg或pkg

    注意:jpackage不支持交叉编译,需要在对应操作系统上执行打包命令才能生成对应平台的安装包,比如生成exe包需要在Windows环境下运行命令。

  • Launch4j + Inno Setup(Windows专属补充):如果需要自定义Windows安装界面、写入注册表、配置开机启动、自定义快捷方式等复杂逻辑,可以先用Launch4j把JAR封装为exe可执行文件,再用Inno Setup打包为完整安装包。
  • rpmbuild/dpkg-deb(Linux专属补充):如果需要自定义Linux安装包的依赖声明、安装前后执行脚本、注册系统服务等逻辑,可以直接使用对应发行版自带的rpmbuild工具打rpm包、dpkg-deb工具打deb包。
  • Platypus(macOS专属补充):可以把JAR包封装为macOS原生的.app应用程序,再打包为dmg格式分发。

可用Maven插件

如果需要把打包流程集成到Java项目的Maven构建生命周期中,可以使用以下插件:

  • jpackage-maven-plugin:官方jpackage工具的Maven封装插件,直接在pom.xml中配置打包参数,执行mvn jpackage:jpackage即可在对应平台生成目标安装包,配置项和原生jpackage命令完全对应,无需手动写执行命令。
    核心配置示例片段:
    <plugin>
      <groupId>com.github.akman</groupId>
      <artifactId>jpackage-maven-plugin</artifactId>
      <version>0.1.9</version>
      <configuration>
        <name>你的应用名称</name>
        <mainJar>项目构建生成的可执行JAR路径</mainJar>
        <mainClass>主类全限定名</mainClass>
        <type>exe</type> <!-- 不同平台修改为对应格式即可 -->
      </configuration>
    </plugin>
    
  • install4j-maven-plugin:商业工具install4j的Maven集成插件,功能更丰富,支持自定义安装向导、多平台交叉打包、内置自动更新逻辑等,适合商用项目使用,需要对应付费License。
  • rpm-maven-plugin/deb-maven-plugin:如果仅需生成Linux平台的rpm/deb包,可以使用这两个插件单独配置,支持自定义Linux环境下的权限配置、服务注册、依赖声明等特殊逻辑。

内容的提问来源于stack exchange,提问作者user2323211

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.17 12:24:03