版本不兼容解决方案

本文详细探讨了Java中UnsupportedClassVersionError的三种常见原因:运行版本和编译版本冲突、项目JDK与本地JDK版本不一致以及Spring/Maven版本与JDK版本的冲突,并提供了相应的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、错误类型

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版本
    在这里插入图片描述
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值