首页 > 其他分享 >无法访问org.springframework.context.annotation.Bean 错误的类文件:类文件具有错误的版本 61.0, 应为 52.0 请删除该文件或确保该文件位于正确

无法访问org.springframework.context.annotation.Bean 错误的类文件:类文件具有错误的版本 61.0, 应为 52.0 请删除该文件或确保该文件位于正确

时间:2023-08-01 16:55:37浏览次数:54  
标签:文件 Java 错误 17 spring 无法访问 springframework 版本 org

Spring 6和SpringBoot 3不再支持Java 8,最低版本为JDK 17,请升级JDK >= 17,同时IDEA >= 2021.2

长期使用的Java 8,这次报错一直切换Spring依赖版本,没想到是Java太旧了,而且IDEA小于2021.2版本也不支持Java 17

来源

SpringSecurity教程的源码,本地打开,各种依赖报错

image

Error:(6, 46) java: 无法访问org.springframework.context.annotation.Bean
  错误的类文件: /D:/Maven/MyMavenRepository/org/springframework/spring-context/6.0.10/spring-context-6.0.10.jar!/org/springframework/context/annotation/Bean.class
    类文件具有错误的版本 61.0, 应为 52.0
    请删除该文件或确保该文件位于正确的类路径子目录中。

pom.xml文件如下

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>BookManage</artifactId>
    <version>1.0-SNAPSHOT</version>
    <name>BookManage</name>
    <packaging>war</packaging>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.target>17</maven.compiler.target>
        <maven.compiler.source>17</maven.compiler.source>
        <junit.version>5.9.2</junit.version>
    </properties>

    <dependencies>
        ...
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>6.0.10</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>6.0.10</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-web</artifactId>
            <version>6.1.1</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-config</artifactId>
            <version>6.1.1</version>
        </dependency>

        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.13</version>
        </dependency>
        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <version>8.0.31</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>3.0.2</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>6.0.10</version>
        </dependency>
        ...
</project>

分析

提示版本错误就更换Spring版本,从Spring 6.0.10更换为Spring 5.2.x,结果还是不行,按照提示在文件夹中删掉依赖,结果IDEA提示类名找到不依赖,也没有导入提示

解决

搜索报错,参考以下链接,原因是Spring 6和SpringBoot 3不再支持Java 8,最低版本Java 17,升级Java 17

java - 错误“类文件的版本错误61.0,应该是52.0”,同时将spring-data-mongodb从3.3.4升级到4.0.0 - 堆栈溢出 (stackoverflow.com)

java - 类文件的版本错误 61.0,应该是 52.0 - 堆栈溢出 (stackoverflow.com)

新的问题

下载好Java 17,IDEA启动又报错,搜索原因是当前IDEA版本不支持Java 17,参考支持的 Java 版本和功能 |IntelliJ IDEA 文档 (jetbrains.com)

Error:Cannot determine path to 'tools.jar' library for 17 (D:\Java\jdk-17.0.8)

除了安装新版本IDEA,另外一个办法,使用Open JDK,适用 Amazon Corretto 11 - Amazon Corretto 的下载包,参考java - 无法确定 18 的“tools.jar”库的路径(C:/Program Files/jdk-18.0.1.1) - 堆栈溢出 (stackoverflow.com)

最后结果是更新Java 17,下载IDEA 2023,项目启动成功

标签:文件,Java,错误,17,spring,无法访问,springframework,版本,org
From: https://www.cnblogs.com/wei-ran/p/17597098.html

相关文章

  • Windows系统提示“telnet不是内部或外部命令,也不是可运行的程序或批处理文件”怎么办?
    Windows系统电脑/服务器在运行CMD命令提示符时提示“不是内部或外部命令,也不是可运行的程序或批处理文件”,遇到这种情况怎么办呢?今天多多和你们分享解决办法。解决方法启用Windows功能(演示的是Windows10系统)1、开始——控制面板——程序和功能2、启用或关闭Windows功能——勾选“T......
  • GOBUSTER - 目录/文件和DNS爆破工具。
    github:https://github.com/OJ/gobuster常用命令行选项-fw -使用通配符结果强制处理域。-np -隐藏进度输出。-m<mode>-使用哪种模式,dir或者dns(默认:) dir。-q -禁用横幅/下划线输出。-t<threads>-要运行的线程数(默认值:) 10。-u<url/domain> -完整URL(包括方案......
  • Java实现读取Excel文件并逐行写入到新的Excel文件中
    在日常开发中,经常需要处理Excel文件,其中一种常见的需求是将原始Excel文件的内容逐行写入到新的Excel文件中或者写入数据中。本篇博客将介绍使用Java编程语言以及ApachePOI库来实现这一功能。ApachePOI是一个开源的Java库,用于处理MicrosoftOffice格式的文件,包括Excel。1.环境......
  • 文件操作
    1.文件基本操作1.1文件的概述文件是数据的抽象和集合,是数据存储的一种形式。一篇文章、一段视频、一个可执行程序,都可以被保存为一个文件,并赋予一个文件名。文件是操作系统提供给用户操作硬盘的一种虚拟的概念。用来承接指令和数据。文件拥有文本文件和二进制文件两种......
  • 国标GB28181视频平台LntonGBS(源码版)国标平台出现报错“缺失dll文件”的问题解决方案
    LntonGBS是基于国标GB28181协议的视频云服务平台,它可以支持国标协议的设备接入,在视频能力上能实现直播、录像存储、检索与回放、云台控制、告警上报、语音对讲、平台级联等功能,既能作为业务平台使用,也能作为能力层平台调用。技术人员在用户服务器部署LntonGBS平台,提示缺失某个dll文......
  • python怎么把json文件夹转成Excel表?
    1、python怎么把json文件夹转成Excel表?2、Python代码json数据再别的目录下怎么调用?3、【Python】浅谈python中的json4、python的json怎么用5、如何使用Python处理JSON数据python怎么把json文件夹转成Excel表?可以用pandas来读取json文件,再to_excel保存为Excel文件。可......
  • 登录认证装饰器,flask配置文件,路由系统
    0登录认证装饰器#0装饰器的本质原理 -#类装饰器:1装饰类的装饰器2类作为装饰器#1装饰器使用位置,顺序#3flask路由下加装饰器,一定要加endpoint -如果不指定endpoint,反向解析的名字都是函数名,不加装饰器没有问题,就是正常函数index,detail-如果加了装饰器---》in......
  • 记一次XML文件 批量添加属性
    publicstaticvoidmain(String[]age){try{List<Path>collect=Files.walk(Paths.get("D:\\modelform")).filter(Files::isRegularFile).collect(Collectors.toList());SAXReaderreader=newSAXReader();......
  • pycharm远程调试忽略文件
     pycharm远程调试忽略文件https://zhuanlan.zhihu.com/p/511270615如果要忽略指定文件夹,可以在settings->build,execution,Deployment->deployment->options->Excludeitemsbyname中设置。 ......
  • 关于安装python包执行setup.py文件报错类似提示line 155 warnings.warn(f'Cannot copy
    首先可以确定世python语法问题,一般来说python3.6以后字符串使用f是没有问题的,后来发现问题所在,原来我安装好python以后,没有将python命令软连接到python3,导致python命令其实一直是使用的python2,所以才会有这样的问题。所以,当python3安装好以后,一定要重新指向软连接,还有pip3,也要指向......