1. 程式人生 > >如何通過jad把class批量反編譯成java文件

如何通過jad把class批量反編譯成java文件

完全 之前 文件夾 文章 cli 自己的 官網 定義 沒有

背景:前幾天在項目開發的時候遇到一個問題,那就是利用myeclipse編寫好的一個項目打包成jar包後上傳部署到服務器裏,之後本地的項目被自己改來改去出現了一些問題,想著把上傳到服務器裏面的war包下載下來重新利用,大家都知道,war包裏面的內容解壓下來後java文件已經被編譯成class文件了,期初用的是一款名為“jd-gui”的工具來反編譯,這個很方便,不過缺點是只能一個一個的進行編譯,很費時間,不能批處理。於是經過度娘與自己的摸索,利用jad完全可以做到(上面不重要,下面才是重點)。

Jd_gui網盤下載地址:http://pan.baidu.com/s/1skSxgDn(不想批處理的可以直接下載這個)

點擊文件(file)中的save Source保存即可

技術分享

Jad官網下載地址:http://www.varaneckas.com/jad按照自己的電腦系統下載

我用的是windows,如下圖:

技術分享

Java jad下載下來解壓後有兩個文件,一個exe文件和一個幫助文件,為了方便使用,我直接將exe文件放到JDK的bin目錄裏,這樣做是為了能夠執行exe文件(不用再環境變量裏面配置),至於如何配置,我會在下一篇文章進行介紹。

放在jdkde bin目錄後,我們打開cmd(快捷鍵:windows+R,輸入cmd):

技術分享

點擊確定即可。

然後在裏面輸入:jad.exe -r -d c:\src -s java -8 classes/**/*.class

其中-r 表示恢復源文件的目錄結構,,-ff 表示將類屬性定義放在類方法定義之前, -d 表示輸出目錄,-s 表示文件的擴展名 -8表示防止亂碼問題

然後回車,你會發現一個很奇怪的現象,

技術分享

表示找不到指定的文件,這肯定是這樣的嘛,因為你電腦上面的c盤子文件下又沒有src這個文件,而且也沒有對應目錄需要執行的classes文件,所以會報錯,很正常的啦。

舉個例子,首先得在c盤的目錄下創建一個src(可以自定義,不過為了方便我們以放在C盤為例)

技術分享

然後在根目錄下(就是與src同目錄)把需要反編譯的classes文件拷貝過來(包括所有子文件)。

技術分享

這個classes就是我們想反編譯的所有

class文件,然後再執行這條語句,你會發現一大串英文。類似這樣的。

技術分享

這就代表編譯成功,然後就可以在src裏面看到class已經編譯成java然後保存到相應的文件夾裏面了

技術分享

技術分享

希望對你能有幫助。

如何通過jad把class批量反編譯成java文件