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

SpringBoot项目打包Jar后运行提示Could not find or load main class

SpringBoot可执行Jar运行报Could not find or load main class问题排查解决

首先纠正一个明显的命令错误:你执行的java -jar nameofjar.java后缀写错了,正确命令应为java -jar nameofjar.jar,先确认是否是这个低级问题导致的报错。

如果后缀无误,按以下步骤逐一排查:

  • 核对Jar内主类的实际路径
    解压Jar后,确认com/owl/PosApi/OwlPosApiApplication.class文件是否存在,路径需完全匹配Manifest中com.owl.PosApi.OwlPosApiApplication的大小写(Java对包名、类名大小写敏感,注意PosApi等名称的大小写是否和实际目录一致)。

  • 确认SpringBoot打包插件配置
    SpringBoot项目必须通过Spring Boot Maven/Gradle插件打包才能生成可执行Jar,普通Jar打包方式无法正确包含依赖和启动逻辑。若使用Maven,检查pom.xml是否包含以下配置:

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
    

    执行mvn clean package后,target目录会生成两个Jar:一个普通Jar,一个带-spring-boot.jar后缀的可执行Jar,需运行的是后者。

  • 检查JDK版本兼容性
    确保运行Jar的JDK版本与IDEA中编译项目的JDK版本一致,比如项目用JDK17编译却用JDK8运行,会触发类加载异常。执行java -version和javac -version确认版本匹配。

  • 验证Manifest文件格式
    Manifest.mf有严格格式要求:最后一行必须是空行,键值对后不能有多余空格。你的Manifest内容格式看似没问题,但不要手动修改,让Spring Boot插件自动生成更可靠。

  • 确认Jar包完整性
    重新执行mvn clean package,确保打包过程无报错。SpringBoot可执行Jar通常体积在几十MB以上,若生成的Jar只有几MB,说明依赖未被正确打包,需检查插件配置或依赖引入是否正常。

附相关信息:

  • 主类路径验证截图:主类路径验证
  • 主类及文件结构截图:主类及文件结构
  • IntelliJ运行配置截图:IntelliJ运行配置
  • Manifest.mf内容:
Manifest-Version: 1.0
Main-Class: com.owl.PosApi.OwlPosApiApplication

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 06:15:39