编译项目遇Spring类文件版本不兼容错误,如何解决?
解决Java版本与Spring依赖不匹配的编译错误
错误核心原因
这个报错本质是版本兼容冲突:
- 类文件版本
61.0对应Java 17(Spring 6.0.0要求最低Java 17运行环境) - 你的项目当前用的是Java 11(对应类文件版本
55.0)
只修改单个Java文件的版本配置没用,得从全局环境、构建配置或依赖版本层面调整。
具体解决步骤
方案一:升级JDK到17或更高版本
- 先在本地安装Java 17的JDK包
- 配置IDE项目的JDK环境:
- IntelliJ IDEA:打开
File → Project Structure,在Project Settings → Project里,把Project SDK选为Java 17,Project language level设为17 - Sealed classes, pattern matching - Eclipse:打开
Window → Preferences → Java → Installed JREs,添加Java 17的JRE;右键项目→Properties → Java Build Path,将依赖库切换为Java 17;最后在Java Compiler里把编译级别设为17
- IntelliJ IDEA:打开
- 同步构建工具的编译版本:
- Maven(修改
pom.xml):
或者更新maven-compiler-plugin配置:<properties> <maven.compiler.source>17</maven.compiler.source> <maven.compiler.target>17</maven.compiler.target> </properties><build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.11.0</version> <configuration> <source>17</source> <target>17</target> </configuration> </plugin> </plugins> </build> - Gradle(修改
build.gradle):java { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 }
- Maven(修改
方案二:降级Spring版本适配Java 11
如果不想升级JDK,可将Spring版本降级到5.3.x系列(该版本兼容Java 8至Java 17),修改pom.xml中的Spring依赖:
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.3.30</version> </dependency>
修改后刷新Maven/Gradle依赖,重新构建项目。
收尾:清理旧编译文件并重新构建
执行构建工具的清理命令,确保残留的旧编译文件被清除:
- Maven:
mvn clean install - Gradle:
gradle clean build
也可以直接在IDE中点击"Clean"按钮后重新编译项目。
内容的提问来源于stack exchange,提问作者Vlad Tsoi
相关产品推荐
相关产品推荐

