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

Spring Boot 3.0.0项目用Java 8运行报UnsupportedClassVersionError求助

解决Spring Boot Jar运行时的UnsupportedClassVersionError问题

核心原因

你遇到的问题本质是Spring Boot版本与本地Java版本不兼容:

  • 类文件版本61.0对应Java 17,52.0对应Java 8
  • 你的项目依赖的Spring Boot 3.x版本要求最低Java 17,所以它的JarLauncher类是用Java 17编译的,哪怕你自己的代码已经设置为编译到Java 8,Spring Boot自身的启动类还是高版本编译的,用Java 8运行自然会报错。

解决步骤

  • 降级Spring Boot版本到2.x系列:Spring Boot 2.7.x是最后支持Java 8的稳定版本,修改pom.xml里的spring-boot-starter-parent版本,比如:
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.15</version> <!-- 选择2.7.x的最新稳定版 -->
        <relativePath/>
    </parent>
    
  • 确认Maven使用的JDK版本:执行mvn -v检查输出里的Java版本,确保Maven确实用的是AdoptOpenJDK 1.8.0_292,避免Maven偷偷调用了其他高版本JDK编译。
  • 清理并重新打包:执行mvn clean package彻底清理旧的构建产物,重新生成兼容Java 8的Jar包后再运行。

额外验证

运行Jar前可以先检查Jar里JarLauncher的类版本,用命令:

javap -verbose -cp your-app.jar org.springframework.boot.loader.JarLauncher | grep "major version"

如果输出是major version: 52,说明已经兼容Java 8,可以正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 13:15:18