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
浙公网安备 33010602011771号