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

Spring项目@ComponentScan报错:Java版本兼容问题解决

解决Spring项目中Unsupported class file major version 64错误

错误原因

错误提示里的Unsupported class file major version 64对应Java 20的类文件版本,而你当前使用的Spring 5.2.24.RELEASE版本不支持Java 20。Spring 5.x系列最高仅兼容到Java 17,Java 17及以上版本需要Spring 6.x及后续版本支持。

解决方案

方案1:降低Java版本到Spring 5.x支持的范围

修改pom.xml中的编译版本配置,将Java版本切换为Spring 5.x支持的8/11/17,示例如下:

<properties>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  <!-- 这里以Java 17为例,也可以改为11或8 -->
  <maven.compiler.source>17</maven.compiler.source>
  <maven.compiler.target>17</maven.compiler.target>
</properties>

同时需要同步调整本地开发环境的JDK版本、IDE的项目SDK设置,确保和pom配置一致。

方案2:升级Spring版本以支持Java 20

将Spring核心依赖升级到支持Java 20的6.x版本,示例如下:

<!-- spring-core 升级到6.x稳定版 -->
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-core</artifactId>
  <version>6.0.11</version>
</dependency>

<!-- spring-context 同步升级同版本 -->
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-context</artifactId>
  <version>6.0.11</version>
</dependency>

补充:Spring 6.x要求最低Java版本为17,你的Java 20版本完全满足要求。另外建议将老旧的JUnit 3.8.1升级到JUnit 5,避免依赖兼容性问题:

<dependency>
  <groupId>org.junit.jupiter</groupId>
  <artifactId>junit-jupiter-api</artifactId>
  <version>5.9.3</version>
  <scope>test</scope>
</dependency>
<dependency>
  <groupId>org.junit.jupiter</groupId>
  <artifactId>junit-jupiter-engine</artifactId>
  <version>5.9.3</version>
  <scope>test</scope>
</dependency>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 00:27:03