1. 程式人生 > >小知識(class文件查看jdk版本,beyond,could not find setter)

小知識(class文件查看jdk版本,beyond,could not find setter)

背景 問題 字段 十進制 把他 nco nsh 文件查看 package

最近幾天工作當中遇到了一些問題,所以記錄下來。

1.如何查看class文件的sdk版本
2.beyond compare比對文件
3.Could not find setter for native_place on class com.tonmx.platform.bean.FaceView
報錯的解決方法

1.如何查看class文件的sdk版本
背景:目前公司環境比較多,有2個項目,A項目沒有代碼(只有已打好的war包,客戶用的),B項目是我的開發環境(有代碼).在B上改了一個接口,然後marven clean,marven install後,準備把打包後的class對應那接口文件閥蓋掉A項目。結果發現A和B項目當時編譯的jdk版本不對。要查看class文件用的是JDK多少,可以使用Editplus,打開後查看第一行的前8位
class文件查看jdk版本

1、事先編譯好一個class文件,如:TestVersion.class
2、使用UltraEdit或Editplus打開class文件,我這裏使用的editplus,如圖:
3、打開時Encoding選擇Hex viewer,以16進制方式顯示
4、打開文件的內容如下:
5、只看第一行數據,前面8個字節CA FE BA BE 是固定的,之後4個字節00 00 是次版本號,次版本號後面的4個字節00 33  是jdk的版本號,如我這裏使用的是jdk1.7
jdk版本號對應關系如下:
版本號
對應十進制
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

技術分享圖片
image.png


所以我編譯的是jdk 1.8
2.beyond compare比對工具
這款工具主要是一個比對軟件,你可以把他當做一個本地的git版本控制器使用,還是非常好用的。不過我用的是試用版,破解版目前還沒找到,親們找到發我一下,感激不盡。
beyond compare官網下載地址

技術分享圖片
image.png

在線比對工具
這個還比較好用,雖然功能沒本地軟件強大,但是他是網頁版,無需安裝
3.新建視圖後,在本地映射視圖上的字段後,報
Could not find setter for native_place on class com.tonmx.platform.bean.FaceView

技術分享圖片
image.png 技術分享圖片 技術分享圖片

小知識(class文件查看jdk版本,beyond,could not find setter)