IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Java新建Maven项目学习Spring注解开发显示:Unsupported class file major version 60 -> 正文阅读

[Java知识库]Java新建Maven项目学习Spring注解开发显示:Unsupported class file major version 60

发生缘由

  • 学习Spring中注解开发

环境

  • jdk版本:jdk-16.0.2
  • Idea版本:2021.2
  • 电脑系统:win10

问题描述

  1. 新疆一个Maven项目,pom.xml文件中添加Spring依赖

        <dependencies>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
                <version>5.2.10.RELEASE</version>
            </dependency>
        </dependencies>
    
  2. 创建BookDao接口和BookDaoImpl类

    package com.linxuan.dao;
    
    public interface BookDao {
        public void save();
        public void update();
    }
    
    package com.linxuan.dao.impl;
    
    import com.linxuan.dao.BookDao;
    import org.springframework.stereotype.Repository;
    
    // 相当于Component注解,不过是dao层的Component注解。
    // 创建一个Been对象,让Spring管理,默认名字是当前类名首字母小写
    @Repository
    public class BookDaoImpl implements BookDao {
    
        @Override
        public void save() {
            System.out.println(System.currentTimeMillis());
            System.out.println("book dao save ...");
        }
    
        @Override
        public void update() {
            System.out.println("book dao update ...");
        }
    }
    
  3. 创建Spring的配置类

    package com.linxuan.config;
    
    import org.springframework.context.annotation.ComponentScan;
    import org.springframework.context.annotation.Configuration;
    
    @Configuration
    @ComponentScan("com.linxuan")
    public class SpringConfig {
    }
    
  4. 编写运行类以及主方法

    package com.linxuan;
    
    import com.linxuan.config.SpringConfig;
    import com.linxuan.dao.BookDao;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.annotation.AnnotationConfigApplicationContext;
    
    public class App {
        public static void main(String[] args) {
            ApplicationContext ctx = new AnnotationConfigApplicationContext(SpringConfig.class);
    
            BookDao bookDao = ctx.getBean(BookDao.class);
            bookDao.update();
        }
    }
    
  5. 运行主方法。结果发现报错,报错信息如下:

    Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class: file [D:\Java\IdeaProjects\ssm\spring02\spring01_aop\target\classes\com\linxuan\App.class]; nested exception is org.springframework.core.NestedIOException: ASM ClassReader failed to parse class file - probably due to a new Java class file version that isn't supported yet: file [D:\Java\IdeaProjects\ssm\spring02\spring01_aop\target\classes\com\linxuan\App.class]; nested exception is java.lang.IllegalArgumentException: Unsupported class file major version 60
    	at org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.scanCandidateComponents(ClassPathScanningCandidateComponentProvider.java:452)
    	at org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.findCandidateComponents(ClassPathScanningCandidateComponentProvider.java:315)
    	at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.doScan(ClassPathBeanDefinitionScanner.java:276)
    	at org.springframework.context.annotation.ComponentScanAnnotationParser.parse(ComponentScanAnnotationParser.java:132)
    	at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:296)
    	at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:250)
    	at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:207)
    	at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:175)
    	at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:319)
    	at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:236)
    	at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:280)
    	at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:96)
    	at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:707)
    	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:533)
    	at org.springframework.context.annotation.AnnotationConfigApplicationContext.<init>(AnnotationConfigApplicationContext.java:89)
    	at com.linxuan.App.main(App.java:10)
    Caused by: org.springframework.core.NestedIOException: ASM ClassReader failed to parse class file - probably due to a new Java class file version that isn't supported yet: file [D:\Java\IdeaProjects\ssm\spring02\spring01_aop\target\classes\com\linxuan\App.class]; nested exception is java.lang.IllegalArgumentException: Unsupported class file major version 60
    	at org.springframework.core.type.classreading.SimpleMetadataReader.getClassReader(SimpleMetadataReader.java:60)
    	at org.springframework.core.type.classreading.SimpleMetadataReader.<init>(SimpleMetadataReader.java:49)
    	at org.springframework.core.type.classreading.SimpleMetadataReaderFactory.getMetadataReader(SimpleMetadataReaderFactory.java:103)
    	at org.springframework.core.type.classreading.CachingMetadataReaderFactory.getMetadataReader(CachingMetadataReaderFactory.java:123)
    	at org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.scanCandidateComponents(ClassPathScanningCandidateComponentProvider.java:429)
    	... 15 more
    Caused by: java.lang.IllegalArgumentException: Unsupported class file major version 60
    	at org.springframework.asm.ClassReader.<init>(ClassReader.java:196)
    	at org.springframework.asm.ClassReader.<init>(ClassReader.java:177)
    	at org.springframework.asm.ClassReader.<init>(ClassReader.java:163)
    	at org.springframework.asm.ClassReader.<init>(ClassReader.java:284)
    	at org.springframework.core.type.classreading.SimpleMetadataReader.getClassReader(SimpleMetadataReader.java:57)
    	... 19 more
    

解决方案

  1. 点击IDEA左上角的File,然后再点击Settings在这里插入图片描述
  2. 依次点击Build, Execution, Deployment > Compiler > Java Compiler
    在这里插入图片描述
  3. 将右方出现的Moudle模块里面的项目和模块的版本切换值8即可
    在这里插入图片描述
    在这里插入图片描述
  4. 点击Apply,然后再点击OK。
    在这里插入图片描述
  5. 点击主方法运行,发现没得问题!
  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-05-18 17:28:59  更:2022-05-18 17:29:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 21:31:54-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码