【JDK】class file has wrong version 65.0, should be 52.0报错解决原理

有两个概念:

  1. jdk version
  2. class version

其中class version是编译打Jar包后字节码文件的版本,有如下对应关系:

  • Java release > Class version
  • 8 > 52
  • 9 > 53
  • 10 > 54
  • 11 > 55
  • 12 > 56
  • 13 > 57
  • 14 > 58
  • 15 > 59
  • 16 > 60
  • 17 > 61
  • 18 > 62
  • 19 > 63
  • 21 > 65

所以假设你的Jar使用jdk21发布的,然后你在jdk8的runtime导入,编译时就会报错;反之由于向下兼容,你在jdk21 runtime导入jdk8编译的Jar不会出错。

class version只受maven配置影响,和git仓库配置的jdk、本地jdk版本都无关。只需要在这个配置编译输出版本即可。

<plugin>
     <groupId>org.apache.maven.plugins</groupId>
     <artifactId>maven-compiler-plugin</artifactId>
     <version>3.6.2</version>
     <configuration>
         <source>${java.version}</source>
         <target>${java.version}</target>
     </configuration>
 </plugin>
评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

征途黯然.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值