Bug:SpringBoot类文件具有错误的版本 61.0, 应为 52.0
启动Springboot项目时候报错
java: 无法访问org.springframework.boot.SpringApplication
错误的类文件: /D:/Maven/apache-maven-3.6.3/repository/org/springframework/boot/spring-boot/3.0.0/spring-boot-3.0.0.jar!/org/springframework/boot/SpringApplication.class
类文件具有错误的版本 61.0, 应为 52.0
请删除该文件或确保该文件位于正确的类路径子目录中。
1 错误复现
从网上下载了一个项目之后,准备测试直接启动,下载完maven依赖之后,启动SpringBoot报错
....类文件具有错误的版本 61.0, 应为 52.0
2 解决方法
2.1 升级本地jdk为jdk17以上
将本地和idea项目的jdk版本改用为jdk17
-
修改本地jdk为17
-
修改idea的编译:
-
修改项目的jdk
- ”你发任你发 我用Java8“的时代可能要改变了,jdk17无论从GC,或者特性等各方面都超过了Java8,且加上JDK17是一个 Oracle官宣可以免费商用的LTS版本,所谓 LTS,是 Long Term Support,也就是官方保证会长期支持的版本。
- JDK 17 将是继 Java 8 以来最重要的LTS版本,是 Java 社区八年努力的成果。
不过,据说JDK21更值得令人期待。
2.2 降低SpringBoot的starter依赖版本
SpringBoot使用了3.0或者3.0以上,因为Spring官方发布从Spring6以及SprinBoot3.0开始最低支持JDK17,所以仅需将SpringBoot版本降低为3.0以下即可。
查看了一下我项目的maven依赖,发现确实是3.0.0版本,因此只需要降低版本即可
parent>
groupId>org.springframework.boot/groupId>
artifactId>spring-boot-starter-parent/artifactId>
version>2.7.5/version>
relativePath/> !-- lookup parent from repository -->
/parent>
3 后续bug
我将本地jdk换为17之后,报如下错误:
- Java HotSpot™ 64-Bit Server VM warning: Options -Xverify:none and -noverify were deprecated in JDK 13 and will likely be removed in a future release.
错误: 找不到或无法加载主类 io.github.xxyopen.novel.NovelApplication
原因: java.lang.ClassNotFoundException: io.github.xxyopen.novel.NovelApplication
解决办法:
选中自己的SpringBoot项目,点击Modify options:
勾选上Disable launch optimization
:
2. 错误: 找不到或无法加载主类 io.github.xxyopen.novel.NovelApplication
原因: java.lang.ClassNotFoundException: io.github.xxyopen.novel.NovelApplication
解决办法:
清除缓存
- file—>Project Structure
- 点击Project Settings中的Moudles—>点击减号将所有的Moudle删除
- 点击+号重新引入Moudle
- 找到项目的父文件夹—>OK
- Rebuild Project
- 如果依然报找不到主类,则设置运行参数范围
之前运行项目报错:
Command line is too long. Shorten command line
参考文章:
https://blog.csdn.net/qq_49619863/article/details/128047256
https://codeantenna.com/a/kYrzHtE8Id