JDK version和class file version(Class编译版本号)对应关系

JDK version和class file version(Class编译版本号)对应关系

JDK 19 = 63, JDK 18 = 62, JDK 17 = 61, JDK 16 = 60, JDK 15 = 59, JDK 14 = 58, JDK 13 = 57, JDK 12 = 56, JDK 11 = 55, JDK 10 = 54, JDK 9 = 53, JDK 8 = 52, JDK 7 = 51, JDK 6.0 = 50, JDK 5.0 = 49, JDK 1.4 = 48, JDK 1.3 = 47, JDK 1.2 = 46, JDK 1.1 = 45.0-45.6

可以使用下列的方式来查看:

使用文本编辑器EmEditor等以16进制方式打开.class文件,在魔数之后的就是次版本号和主版本号:

图中红框中的代表版本号52.0

次版本号:00 00 (小数点后面的部分)

主版本号:00 34 (小数点前面的部分)对应的10进制为52,对应的jdk版本为jdk8

各个版本的对应关系

JDK版本号 Class版本号 16进制 1.1 45.0 00 00 00 2D 1.2 46.0 00 00 00 2E 1.3 47.0 00 00 00 2F 1.4 48.0 00 00 00 30 1.5 49.0 00 00 00 31 1.6 50.0 00 00 00 32 1.7 51.0 00 00 00 33 1.8 52.0 00 00 00 34

备注:

文件结构可以在JVM规范里查看,链接里是Java SE 19的版本

其它jdk版本的话,更改下链接里的se后的值就行。

经验分享 程序员 微信小程序 职场和发展