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

Maven项目中生成.sh可执行文件的插件推荐及install4j适用性咨询

Maven项目生成Linux/Unix可执行.sh文件的方案

当然有啦!我来给你梳理几个靠谱的方案,包括你提到的install4j以及其他专门的Maven插件:

一、直接用install4j生成.sh文件

你完全不用换插件——install4j本身就是跨平台的打包工具,它不仅能生成Windows的.exe,也支持生成Linux/Unix平台的.sh可执行脚本(甚至还能生成macOS的.app)。

在Maven中配置install4j插件时,只需要在插件参数里指定目标平台为Linux/Unix,或者在install4j的可视化配置界面中选择对应的输出类型(比如带启动脚本的tar.gz包),流程和生成.exe基本一致,非常省心。

二、轻量级Maven插件方案

如果不想依赖install4j这类重型工具,下面这几个Maven插件可以直接帮你生成.sh启动脚本:

1. appassembler-maven-plugin(最推荐)

这个插件专门为Java应用生成跨平台启动脚本,对Linux/Unix的.sh支持非常友好。它会自动帮你处理classpath、JVM参数配置,不需要手动写脚本模板,生成的脚本可以直接执行。

举个简单的配置示例:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>appassembler-maven-plugin</artifactId>
    <version>2.1.0</version>
    <configuration>
        <programs>
            <program>
                <mainClass>com.yourcompany.YourMainClass</mainClass>
                <name>your-app</name> <!-- 生成的.sh脚本名称 -->
            </program>
        </programs>
        <platforms>
            <platform>unix</platform> <!-- 指定只生成Unix平台脚本 -->
        </platforms>
    </configuration>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>assemble</goal>
            </goals>
        </execution>
    </executions>
</plugin>

执行mvn package后,脚本会生成在target/appassembler/bin/目录下,直接赋予可执行权限就能用。

2. maven-assembly-plugin

这个插件可以自定义组装你的应用包,包括把jar和手动编写的.sh脚本打包到一起,还能自动设置脚本的可执行权限。你需要先写一个shell脚本模板(比如包含java -jar your-app.jar的逻辑),然后在assembly的descriptor配置文件中指定包含这个脚本,并设置权限为0755。

3. maven-shade-plugin(配合脚本使用)

它主要用来打fat jar(把所有依赖打包到一个jar里),本身不直接生成.sh,但你可以先打好fat jar,再用assembly插件或者手动添加启动脚本,也能实现一键启动的效果。

总结

  • 如果已经在使用install4j,直接用它生成.sh就好,跨平台支持完善;
  • 想要轻量级方案,appassembler-maven-plugin是最省心的选择,配置简单且自动化程度高;
  • 如果你需要高度自定义脚本逻辑,maven-assembly-plugin会更灵活。

内容的提问来源于stack exchange,提问作者Ajit A Ankalle

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:37:07