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

Maven构建jar包后执行报错:无法找到或加载指定主类

解决Maven Assembly打包后找不到主类的问题

别着急,这种情况我遇到过好多次,大概率是你的maven-assembly-plugin配置里,主类的manifest信息没正确配置或者生效——哪怕你核对了类名包名,插件也可能没把主类信息写入到jar的核心配置文件里。咱们一步步来排查修复:

1. 补全并检查assembly插件的完整配置

你提供的pom片段看起来没写完,确保插件配置包含以下关键部分,尤其是主类和执行阶段的设置:

<plugins>
    <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <!-- 建议指定稳定版本,避免默认版本的兼容性坑 -->
        <version>3.5.1</version>
        <configuration>
            <archive>
                <manifest>
                    <!-- 这里必须填写完整的主类全限定名,注意大小写! -->
                    <mainClass>com.atlassian.JiraRestCaller</mainClass>
                </manifest>
            </archive>
            <!-- 指定打包带所有依赖的jar -->
            <descriptorRefs>
                <descriptorRef>jar-with-dependencies</descriptorRef>
            </descriptorRefs>
        </configuration>
        <executions>
            <execution>
                <id>make-assembly</id>
                <!-- 让插件在package阶段自动执行打包 -->
                <phase>package</phase>
                <goals>
                    <goal>single</goal>
                </goals>
            </execution>
        </executions>
    </plugin>
</plugins>

这里要注意几个细节:

  • 一定要指定插件版本,不同版本的配置可能有差异
  • <mainClass>的类名必须和你实际的主类完全一致(Java是大小写敏感的,别写错字母)
  • 配置<executions>是为了让Maven在执行mvn package时自动触发打包,不然你手动运行mvn assembly:single可能会遗漏配置

2. 验证打包后的jar是否包含正确的主类信息

打包完成后,用命令查看jar里的MANIFEST.MF文件,确认主类信息是否存在:

unzip -p your-snapshot-jar-with-dependencies.jar META-INF/MANIFEST.MF

如果输出里有Main-Class: com.atlassian.JiraRestCaller这一行,说明配置生效了;如果没有,那就是插件配置有问题,回头再检查xml的语法(比如标签是否闭合)。

3. 确认主类的class文件确实在jar里

有时候可能主类没被正确编译打包,用下面的命令检查jar里的目录结构:

jar tf your-snapshot-jar-with-dependencies.jar | grep JiraRestCaller.class

正常应该输出com/atlassian/JiraRestCaller.class,如果没有,说明你的主类不在Maven默认的src/main/java目录下,需要调整pom里的sourceDirectory配置,或者把主类移到正确的源码目录。

4. 重新清理打包并测试

先清理之前的构建产物,再重新打包:

mvn clean package

然后到target目录下运行你的jar:

java -jar target/your-snapshot-jar-with-dependencies.jar

按照这个流程走下来,基本就能解决找不到主类的问题啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:19:07