[ERROR] /Users/****/src/main/java/com/wn/mockito/controller/AccountController.java:[5,52] 无法访问org.springframework.beans.factory.annotation.Autowired 错误的类文件: /Users/***/repository/org/springframework/spring-beans/6.1.10/spring-beans-6.1.10.jar(org/springframework/beans/factory/annotation/Autowired.class) 类文件具有错误的版本 61.0, 应为 52.0 请删除该文件或确保该文件位于正确的类路径子目录中。 无法访问org.springframework.stereotype.Controller
用户遇到的问题是类文件版本不兼容。具体错误信息指出类文件版本为 61.0,而应为 52.0。
Java 的 JDK 版本与类文件的 major version 对应关系如下:
JDK 版本 | Major Version |
---|---|
JDK 1.0 | 45 |
JDK 1.1 | 45 |
JDK 1.2 | 46 |
JDK 1.3 | 47 |
JDK 1.4 | 48 |
JDK 5.0 | 49 |
JDK 6 | 50 |
JDK 7 | 51 |
JDK 8 | 52 |
JDK 9 | 53 |
JDK 10 | 54 |
JDK 11 | 55 |
JDK 12 | 56 |
JDK 13 | 57 |
JDK 14 | 58 |
JDK 15 | 59 |
JDK 16 | 60 |
JDK 17 | 61 |
JDK 18 | 62 |
JDK 19 | 63 |
JDK 20 | 64 |
JDK 21 | 65 |
例如我的项目使用的是 JDK 8
wn@wndeMBP ~ % Java -version java version "1.8.0_291" Java(TM) SE Runtime Environment (build 1.8.0_291-b10) Java HotSpot(TM) 64-Bit Server VM (build 25.291-b10, mixed mode)
确保项目使用的 JDK 版本与 Spring 依赖的版本兼容。
如果项目使用的是 JDK 8,但引入了 JDK 17 对应的 Spring 版本,会导致版本不兼容。
详细说明
确保你的项目使用的 JDK 版本与生成的类文件的 major version 匹配。
Spring Boot 与 JDK 版本的对应关系如下:
Spring Boot 版本 | 支持的 JDK 版本 |
---|---|
Spring Boot 3.x | JDK 17 及以上 |
Spring Boot 2.x | JDK 8 及以上 |
Spring Boot 1.x | JDK 6 及以上 |
详细说明
Spring Boot 3.x:
Spring Boot 2.x:
Spring Boot 1.x:
示例
如果你使用的是 JDK 8,推荐使用 Spring Boot 2.x:
org.springframework.boot spring-boot-starter-parent 2.5.4
如果你使用的是 JDK 17,推荐使用 Spring Boot 3.x:
org.springframework.boot spring-boot-starter-parent 3.0.0
确保你的项目使用的 JDK 版本与引入的 Spring Boot 版本兼容。
确保引入的 Spring 版本与项目使用的 JDK 版本兼容。
Spring 框架与 JDK 版本的对应关系如下:
Spring 版本 | 支持的 JDK 版本 |
---|---|
Spring 6.x | JDK 17 及以上 |
Spring 5.x | JDK 8 及以上 |
Spring 4.x | JDK 6 及以上 |
Spring 3.x | JDK 5 及以上 |
详细说明
Spring 6.x:
Spring 5.x:
Spring 4.x:
Spring 3.x:
org.springframework spring-context 6.1.10
org.springframework spring-context 5.3.19
确保项目使用的 JDK 版本与引入的 Spring、Spring Boot 版本兼容