奇思妙想 · 2024年 5月 29日 0

如何获取Java .class文件版本号?

123 次浏览

Java class文件第二个四字节分别是两个字节的minor_version和两个字节的major_version. JDK 1.1对应major_version是45, JDK 1.8对应版本为52 (0x34).

  • hexdump demo.class
    0000000 feca beba 0000 3400 1b00 000a 0005 090e

可以通过编译选项 -source xxx -target yyy将源代码按照xxx版本编译,目标class文件为yyy版本。

  • javac -target 1.7 -source 1.7 demo.java
    生成的class文件major_version就变成了0x33 (1.7版本)。
    0000000 feca beba 0000 3300 1b00 000a 0005 090e