java 查看class文件的jdk版本的两种方式(编译版本)
1.情景展示
有时候我们需要知道jar包里面class文件的jdk编译版本,来排查错误。
以上图为例,如何实现?
2.具体分析
将其中一个class文件解压出来,然后查看大致的jdk版本号。
3.解决方案
使用解压工具打开gridreport.jar,将Report.class解压到桌面。
方式一:使用文本编辑工具EditPlus
使用EditPlus打开该class文件,字符集选择16进制(Hex viewer)。
仅仅看第一行数据,前面8个字节CA FE BA BE 是固定的。
之后4个字节00 00 是次版本。
次版本后面的4个字节00 34 就是jdk的版本。
JDK版本与16进制对照关系如下:
JDK1.5 31
JDK1.6 32
JDK1.7 33
JDK8 34
方式二:使用javap命令实现
切换到桌面。
运行以下命令
javap -v Report.class
我们只需要看major version的值是多少就可以了(它的值是十进制数字)。
jdk版本相应关系例如以下:
HEX | 十进制 | jdk |
2E | 46 | jdk1.2 |
2F | 47 | jdk1.3 |
30 | 48 | jdk1.4 |
31 | 49 | jdk1.5 |
32 | 50 | jdk1.6 |
33 | 51 | jdk1.7 |
34 | 52 | jdk1.8 |
35 | 53 | jdk9 |
36 | 54 | jdk10 |
37 | 55 | jdk11 |
38 | 56 | jdk12 |
39 | 57 | jdk13 |
本文来自博客园,作者:Marydon,转载请注明原文链接:https://www.cnblogs.com/Marydon20170307/p/17600032.html