老趙說起來也能算個Java程式員,可是寫過的Java代碼并不多,可老趙實實在在是從程式員幹起的。雖然肚子裡也裝了不少的東西,可作為一件樂此不疲的事情,就是看那些所謂“高人”的代碼。
高人們的行事風格,十人十樣,難一而足,不能以常人之準則判之。諸如,功能強大用之友善的IDE不用,用文本編輯器寫Java代碼;抑或一個類中洋洋灑灑 數千行代碼,且無一行注釋;再或編寫完代碼後,進行混淆,美其名曰“知識保護”;另者高舉Opensource的大旗,源碼卻無處可尋;更有甚者,一個 “Hello world!”,能整出是好幾種實作方式,...。請注意,我無意質詢或貶低這些高人們,知識産權歸創造者,理所當然。
Andy語錄:代碼是寫的,不是看的!然而有時看高人們的代碼,還是收獲頗豐的,或者可以說是一種學習的捷徑。
而高人們之是以高,還在于他們産出的代碼,确實有過人之處,以巧為媒,以能為介,不管你們信不信,反正我是相信的!
陳述如此之多,不外乎引出标題所述的Java反編譯工具: JD-GUI。老趙以前在看高人們的代碼時,常用的工具是 DJJAVA,或者直接用其中所帶反編譯工具的核心:JAD,尤其是成批反編譯一個整包的Java類時,更是如此。
今日早晨,想看看自己寫的Java代碼,反編譯後和自己原來寫的東西究竟有何差別,下載下傳 DJJAVA 的最新版,多次不成功,不知是網絡的原因,還是自己失去了耐心,決心重新找個可用的東西,結果發現了 JD-GUI 這個東東。
其優點如下:
(1) C++實作,速度奇快;免安裝,一個 jd-gui.exe檔案,下載下傳後拷貝即用。
(2)勿論.class還是jar包,打開後,可以直接檢視代碼,且是排好版的格式。
(3)且可以直接存儲源代碼,最可貴的是可以将 jar 包中的源代碼全部轉儲。
示例如下:

JD-GUI簡介:JD-GUI 是一個用 C++ 開發的 Java 反編譯工具,由 Pavel Kouznetsov開發,支援Windows、Linux和蘋果Mac Os三個平台。而且提供了Eclipse平台下的插件JD-Eclipse。
反編譯有幾個好處:
①可以看自己的項目中的class檔案是否編譯到了,因為伺服器運作的是class檔案。
②可以檢視别人提供的jar包裡面的源碼,進行學習
③可以加強自己的安全意識,盡量減少代碼洩露出去。不能避免别人反編譯,但是我們可以增加反編譯的難度。
本文轉自建波李 51CTO部落格,原文連結:http://blog.51cto.com/jianboli/1886591,如需轉載請自行聯系原作者