2025-10-30 09:51:29

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

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

JDK 23 = 67,

JDK 22 = 66,

JDK 21 = 65,

JDK 20 = 64,

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.145.000 00 00 2D1.246.000 00 00 2E1.347.000 00 00 2F1.448.000 00 00 301.549.000 00 00 311.650.000 00 00 321.751.000 00 00 331.852.000 00 00 34

备注:

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

Chapter 4. The class File Format

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