网上有些人说可以用反编译工具或直接解压jar包查看META-INF\MANIFEST.MF的Build-Jdk属性,这个属性值和jar包jdk实际的版本是不一致的,这个属性值代表的应该是本地的jdk版本。
我在官网上也没查到相应的资料。
https://docs.oracle.com/javase/7/docs/technotes/guides/jar/jar.html#Intro
1.如何正确的查找jar包的jdk的版本
使用jdk自带的工具,将jar包解压用命令读取某个类的字节码信息
javap -v App.class
major version 为50表示使用jdk1.6编译的。
而反编译工具显示的build-jdk为1.8,这是本地jdk的版本,和jar包的编译版本估计是2个不同的概念了。
2.jdk版本和major version对应关系:
JDK 1.8 = 52,
JDK 1.7= 51,
JDK 1.6= 50,
JDK 1.5 = 49,
JDK 1.4 = 48,
JDK 1.3 = 47,
JDK 1.2 = 46,
JDK 1.1 = 45