如何查看class文件的編譯版本
『壹』 如何查看Class文件編譯的JDK版本
准備好要查看的class文件,本例使用Tools.class文件。
如何查看class文件的jdk版本
使用Ultra Edit打開class文件
如何查看class文件的jdk版本
如果顯示效果如下圖一樣,則表示默認使用的是16進制方式顯示。
如何查看class文件的jdk版本
如果不是16進制方式,則顯示為下圖的亂碼樣式。此時需要點擊菜單上的【切換為十六進制編輯模式】
如何查看class文件的jdk版本
只看第一行的數據:
(1)前面8個位元組CA FE BA BE是固定的。
(2)隨後4個位元組00 00是次版本號
(3)再後面的4個位元組00 34是JDK的版本號(JDK1.8)。
JDK版本號對應關系如下:
34(對應十進制的50):JDK1.8
33(對應十進制的50):JDK1.7
32(對應十進制的50):JDK1.6
詳細見第5步.......
如何查看class文件的jdk版本
詳細的JDK版本對應關系:
34(對應十進制的50):JDK1.8
33(對應十進制的50):JDK1.7
32(對應十進制的50):JDK1.6
31(對應十進制的49):JDK1.5
30(對應十進制的48):JDK1.4
2F(對應十進制的47):JDK1.3
2E(對應十進制的46):JDK1.2
『貳』 怎麼看class文件的編譯版本
查看class文件編譯的jdk版本步驟如下:
首先打開cmd命令行窗口,輸入如下指令:
會輸出一些信息,大致如下:
Compiled from "HtmlCrawer.java"
public class org.eagleeye.html.HtmlCrawer extends java.lang.Object
SourceFile: "HtmlCrawer.java"
minor version: 0
major version: 50//這個便是jdk的版本信息。
『叄』 如何判斷java類的編譯版本
使用javap反編譯class文件,命令為
javap-c-verboseclass文件名
生成的文件中可以看到這么兩句:
minor version: 0
major version: 52
52便代表了是使用JDK8編譯出來的,JDK7是51,JDK6是50,以此類推
『肆』 如何查看java的class文件是被哪個版本的jdk編譯的
使用UE(Ultra Edit)打開.class文件,切換到16進制模式,查看第1行: CA FE BA BE 00 00 00 3200 75 07 00 02 01 00 27 ; ... .. 前8個位元組:CA FE BA BE 是固定的後面的4個位元組:00 00是次版本號次版本號後面的4個位元組:00 32是編譯源代碼的jdk版本號32(對應十進制的50):JDK1.631(對應十進制的49):JDK1.530(對應十進制的48):JDK1.42F(對應十進制的47):JDK1.3 2E(對應十進制的46):JDK1.2 編譯器的jdk版本是1.2 編譯器的jdk版本是1.6