如何通過jad把class批量反編譯成java文件
背景:前幾天在項目開發的時候遇到一個問題,那就是利用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就是我們想反編譯的所有
這就代表編譯成功,然後就可以在src裏面看到class已經編譯成java然後保存到相應的文件夾裏面了
希望對你能有幫助。
如何通過jad把class批量反編譯成java文件