【bugfix】从jar包找到最低jdk、jre版本

问题背景

当项目中引用高版本类库时,可能导致线程down了,由于线上(1.6)线下(1.8)jdk版本不同,引入了新的jar包,所以试着排查新jar包的类版本。

排查过程

1.解压jar包

jar -xvf kafka-clients-0.10.0.0.jar

会有一系列class文件,选择./org/apache/kafka/clients/producer路径下的一个class类文件

2.javap程序解析类文件并提取版本

javap -v KafkaProducer.class |grep version -C 3

如图,发现该类的主版本号是51,对应的jdk版本是1.7

  • J2SE 8.0 = 52(0x33 hex)
  • J2SE 7.0 = 51(0x32 hex)
  • J2SE 6.0 = 50 (0x32 hex)
  • J2SE 5.0 = 49 (0x31 hex)
  • JDK 1.4 = 48 (0x30 hex)
  • JDK 1.3 = 47 (0x2F hex)
  • JDK 1.2 = 46 (0x2E hex)
  • JDK 1.1 = 45 (0x2D hex)

由于线上是1.6,低于该类的版本号,类版本兼容

出现 java.lang.UnsupportedClassVersionError: org/springframework/kafka/core/ProducerFactory : Unsupported major.minor version 51.0

class file has wrong version 51.0, should be 50.0,这种问题

 

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值