1. 程式人生 > >怎麼知道Java class檔案JDK編譯的版本號

怎麼知道Java class檔案JDK編譯的版本號

首先用一些二進位制檢視器開啟class檔案,比如od或者hexdump工具。

od -x hello.class

或者

hexdump hello.class

我們會看到類似於下面的輸出:

feca beba 0000 3300

這裡我們看到前四個位元組是Java class的特殊符號,叫做magic欄位,用來告訴JVM這是個class檔案,之後的兩個位元組是minor版本號,再之後的兩個位元組是major版本號,我們看到時33,對應下表我們知道33時JDK1.7編譯的版本號。

              十六進位制   

JDK1.5      31

JDK1.6      32 

JDK1.7      33

JDK8         34

因為Java是向後相容的,所以高版本的相容低版本的,所以有時候你遇到java報: unsupported major.minor version 51,那就是你用低版本的虛擬機器去執行高版本JDK編譯的class檔案了,所以低版本的虛擬機器就抱怨了。這裡的51是十進位制,也就是十六進位制的33,及對應JDK1.7,如果出現這種錯誤,你肯定是使用低於1.7版本的虛擬機器去執行這個了。

作者:hongchangfirst