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

Maven配置mainClass后用java -jar启动jar仍提示no main manifest attribute如何解决

问题排查解决步骤
    1. 确认你运行的是正确的jar包
      maven-assembly-plugin 配置jar-with-dependencies后会生成两个jar包:
    • 后缀为original-xxx.jar的原始jar,不包含依赖也没有主类配置,你应该运行名称带jar-with-dependencies后缀的jar包
    1. 修正插件执行阶段绑定
      你当前把maven-assembly-plugin的执行绑定到了repackage阶段,该阶段是Spring Boot插件的自定义阶段,不属于Maven标准生命周期,常规打包命令mvn package不会触发该阶段执行,把phase改为标准的package即可:
<execution>
    <id>make-assembly</id>
    <phase>package</phase> <!-- 这里把repackage改成package -->
    <goals>
        <goal>single</goal>
    </goals>
</execution>

修改后重新执行mvn clean package即可触发插件执行生成正确的可执行jar。

    1. 核对主类配置正确性
    • 确认com.testpackage.testclass类真实存在,类顶部的package声明和配置路径完全一致
    • 确认该类存在标准的主方法:
    public static void main(String[] args) {
        // 业务逻辑
    }
    
    注意主方法的访问修饰符必须是public、静态修饰符static不能缺失,参数格式必须为String[] args
    1. 手动校验jar包的清单文件
      如果上述步骤都没问题还是报错,解压你运行的jar包,查看META-INF/MANIFEST.MF文件,确认是否存在Main-Class: com.testpackage.testclass的配置行,如果没有说明插件未正常执行,可检查pom中插件是否放在<build><plugins>层级下,多模块项目需要将插件配置放到需要打包的子模块pom中,而非父pom。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 20:09:03