一、错误类型
java.lang.UnsupportedClassVersionError
无效的目标发行版: 21、无效的目标发行版: 16
二、发生原因
- 运行版本和编译版本冲突
- 项目和本地jdk版本冲突
- spring/maven版本和jdk版本冲突
三、解决办法
1、本地运行版本和编译版本冲突
快捷键win+r,打开cmd。分别输入java -version和javac -version进行查看。
如果显示‘java’/‘javac’不是内部或外部命令,也不是可运行的程序或批处理文件。则需要先进行环境配置,具体配置方法不在此赘述。
- javac显示的是开发版本,编译.java文件
- java显示的是运行版本,执行.class文件
- 只有编译版本小于等于运行版本时不会报错。
解决方法:确保环境配置的是同一个包
2、项目和本地jdk版本冲突
解决方法:检查项目中jdk版本是否与本地一致
①IDEA路径:file-project Structure-project
②IDEA路径:file-project Structure-modules
③IDEA路径:file-project Structure-SDKs
④IDEA路径:file-settings-build,execution,development-compiler-java compiler
3、spring/maven版本和jdk版本冲突
①maven版本冲突
- 检查maven与jdk相应版本
- maven 3.3.1+的版本只能运行在java JDK 1.7+的版本上
- 调整maven默认的jdk:
修改本地maven的settings.xml文件,在标签下添加一个标签
<profile>
<id>JDK-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
②spring版本冲突
- springboot 2.xx与jdk1.8适配,否则会报错java.lang.UnsupportedClassVersionError
- pom.xml文件调整spring版本、设置jdk版本