通过java class文件确定其编译器版本

方法一:

 

hexdump -C XXX.class

返回信息:ca fe ba be 00 00 00 34 .....

前几位"ca fe ba be"是固定的,后面34标识,当前class是JDK8编译的。

对照表:

Java SE 9 = 53 (0x35 hex),[3]
Java SE 8 = 52 (0x34 hex),
Java SE 7 = 51 (0x33 hex),
Java SE 6.0 = 50 (0x32 hex),
Java SE 5.0 = 49 (0x31 hex),

 

 

方法二

javap -verbose Xxxx (不要加.class)

返回信息头几行:major version: 52,标示当前class是JDK8编译的,对照表见上。

 

参考:

http://blog.sina.com.cn/s/blog_437ff56b0100r22z.html

https://en.wikipedia.org/wiki/Java_class_file

 

你可能感兴趣的:(Java)