java: 无法访问org.springframework.boot.SpringApplication

由于直接使用的springboot 3.0版本
编译出现如下错误

/usr/local/develop/workplace/shiro/src/main/java/com/style/shiro/ShiroApplication.java:3:32
java: 无法访问org.springframework.boot.SpringApplication
  错误的类文件: /usr/local/develop/repository/org/springframework/boot/spring-boot/3.0.2/spring-boot-3.0.2.jar!/org/springframework/boot/SpringApplication.class
    类文件具有错误的版本 61.0, 应为 52.0
    请删除该文件或确保该文件位于正确的类路径子目录中。

报错信息里所说的类文件版本指的是java class file version,java类文件版本
该版本号与jdk版本号存在对应关系,61.0对应jdk17,52.0对应jdk8。
完整对应关系参见
https://stackoverflow.com/questions/9170832/list-of-java-class-file-format-major-version-numbers

原因是 java类的版本和 jdk版本不匹配

解决办法

  • 降低Java类的版本
    此处使用springboot版本为3.0.0 降低为2.7.7
<parent>
	<groupId>org.springframework.bootgroupId>
	<artifactId>spring-boot-starter-parentartifactId>
	<version>2.7.7version>
	<relativePath/> 
parent>
  • 增加jdk的版本 配置项目的jdk 为与Java类匹配的版本 即可 此处是配置为JDK17即可

可使用如下命令查看Java类的版本

#build/classes/com/example/Book.class 替换为对应的类
javap -v build/classes/com/example/Book.class | grep major

你可能感兴趣的:(java,java,spring,boot)