类文件具有错误的版本 61.0, 应为 52.0

一.问题描述

最近开启学习新项目的时候报了如下的错误


java: 无法访问org.springframework.stereotype.Repository
  错误的类文件: /E:/maven/apache-maven-3.6.2/repository/org/springframework/spring-context/6.0.3/spring-context-6.0.3.jar!/org/springframework/stereotype/Repository.class
    类文件具有错误的版本 61.0, 应为 52.0  

二.解决问题

我原来这个包的版本为3.0以上的

在这里插入图片描述

调整这个包的版本,调整为3.0以下,如下版本:
maven网址:maven地址
搜 spring-boot-starter-web

<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <version>2.3.7.RELEASE</version>
</dependency>

三.探究问题根源

1.jdk版本和class文件版本的对照关系

我们都知道JDK有JDK的版本,那我们是class文件也有自己的版本,每个Java 版本都有对应的特定 Java 类文件版本号

对应关系如下:
在这里插入图片描述

低版本的 Java 环境中运行高版本的类文件,则会出现与上面图片描述相似的错误(类似小学刚毕业就想参加高考)。

我JDK的版本是1.8,对应class文件版本应该为52,但是,由于Spring Boot的默认版本更新为Spring Boot 3了,它需要Java17来进行编译(最小依赖Java17,即类文件版本为61),而传统的开发都基于JDK1.8,也就是只能把我们的spring-boot-starter-web包版本降低到3.0以下。

其实还有另外一种办法,就是把JDK升级到17或17以上,这个我相信很多人暂时还不会去这样做。

  • 13
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值