这段错误信息表明你的Java编译器(Javac)正在尝试访问 “org.springframework.boot.SpringApplication ”类,但它发现了一个版本不匹配的类文件。具体来说,错误信息中提到:
这意味着你使用的“org.springframework.boot.SpringApplication” 类的编译版本(61.0)与当前Java编译器的版本不匹配。通常情况下,编译版本(class file version)应该与你的Java编译器版本相对应。版本号代表Java编译器的兼容性级别。
Java 版本 | 类文件版本 |
---|---|
Java 1.1 | 45.3 |
Java 1.2 | 46.0 |
Java 1.3 | 47.0 |
Java 1.4 | 48.0 |
Java 5 | 49.0 |
Java 6 | 50.0 |
Java 7 | 51.0 |
Java 8 | 52.0 |
Java 9 | 53.0 |
Java 10 | 54.0 |
Java 11 | 55.0 |
Java 12 | 56.0 |
Java 13 | 57.0 |
Java 14 | 58.0 |
Java 15 | 59.0 |
Java 16 | 60.0 |
Java 17 | 61.0 |
更新Java编译器:将你的Java编译器更新到与你正在使用的Spring Boot版本兼容的版本。如果你使用的是较新版本的Spring Boot,那么你需要使用相应版本的Java编译器。
降低Spring Boot版本:如果你的项目没有特别需要使用较新版本的Spring Boot,可以考虑将Spring Boot版本降低到与你的Java编译器版本兼容的版本。你可以在项目的Maven或Gradle配置文件中指定要使用的Spring Boot版本。
删除错误的类文件:根据错误信息中的提示,你也可以尝试删除 /D:/apache-maven-3.6.3/repository/org/springframework/boot/spring-boot/3.1.3/spring-boot-3.1.3.jar!/org/springframework/boot/SpringApplication.class 文件,并重新构建项目。(不建议)
打开pom.xml文件。将spring boot的版本号改为对应的版本。java8对应的是52,然而Spring Boot 2.0.x 版本对应的Java类文件版本都是 52。
改好之后关闭IDEA重启就好。如果还有报错异常,打开旁边的maven,点击clean,再刷新一下就好了。
因为SpringApplication.class的类文件信息的字节数,超过了默认的缓冲区大小,无法查看完整的类文件信息。
javap -v SpringApplication.class