Caused by: java.lang.UnsupportedClassVersionError: org/springframework/cloud/bootstrap/BootstrapApplicationListener has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
-
报错原因
在编译时使用了java17进行编译,然而运行时使用java8
-
思路和解决办法
- 直接找到BootstrapApplicationListener也就是报错的文件的class文件,查看确实是61.0也就是java17编译的,然后我又看了项目结构里面全部设置的为1.8,之后在网上搜集资料才知道这个文件是java17自动编译产生的,去maven仓库里可以搜到这个jar包不指定版本就会自动引入最新版本
2. 解决办法:我的解决办法是直接删掉了相关的jar包又重新引入旧版本的jar包(因为pom文件里没有引入这个依赖,是引入cloud相关依赖时自带的);其实应该也可以直接在pom文件里把spring-cloud的依赖降级,但后面可能会报新的错误:spring-boot和spring-cloud的版本冲突问题,解决思路我写在下一篇文章。