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

 

写在最后

  哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!

 相关推荐:

posted @ 2023-08-02 10:50  Marydon  阅读(2852)  评论(0编辑  收藏  举报