class文件的反編譯工具是java中比較常常用到的,這個也是有不少的用戶是需要進行編程使用的,本站為你提供的是一款比較小巧的工具,適合初學者的使用!
java class反編譯原理
將.class文件讀取出來,里面的機器語言轉(zhuǎn)換成java語言。翻譯成相應(yīng)的語句一般的流程是先把程序調(diào)入到數(shù)據(jù)段,虛擬運行環(huán)境,一般這分配文件頭部,從紀錄指令程序數(shù)據(jù)段,載入到虛擬環(huán)境中,紀錄指令,遇到跳轉(zhuǎn)指令,壓入棧,形成樹結(jié)構(gòu)(看數(shù)據(jù)結(jié)構(gòu)),遍歷每個節(jié)點的指令。形成完整程序。
如何將java中的.class文件反編譯
開始-運行-cmd-回車-進入命令行窗口:
cd+空格+class文件所在路徑:
按下面的命令進行反編譯:
例如:[2] jad -sjava example.class 回車
在目錄里可以看到example.java源文件
[1] 反編譯一個class文件:jad example.class,會生成example.jad,用文本編輯器打開就是java源代碼
[2] 指定生成源代碼的后綴名:jad -sjava example.class,生成example.java
[3] 改變生成的源代碼的名稱,可以先使用-p將反編譯后的源代碼輸出到控制臺窗口,然后使用重定向,輸出到文件:jad -p example.class > myexample.java
[4] 把源代碼文件輸出到指定的目錄:jad -dnewdir -sjava example.class,在newdir目錄下生成example.java
[5] 把packages目錄下的class文件全部反編譯:jad -sjava packages/*.class
[6] 把packages目錄以及子目錄下的文件全部反編譯:jad -sjava packages/**/*.class,不過你仍然會發(fā)現(xiàn)所有的源代碼文件被放到了同一個文件中,沒有按照class文件的包路徑建立起路徑
[7] 把packages目錄以及子目錄下的文件全部反編譯并建立和java包一致的文件夾路徑,可以使用-r命令:jad -r -sjava packages/**/*.class
[8] 當重復(fù)使用命令反編譯時,Jad會提示“whether you want to overwrite it or not”,使用-o可以強制覆蓋舊文件
[9] 還有其他的參數(shù)可以設(shè)置生成的源代碼的格式,可以輸入jad命令查看幫助,這里有個人做了簡單的翻譯:jad命令總結(jié)
[10] 當然,你會發(fā)現(xiàn)有些源文件頭部有些注釋信息,不用找了,jad沒有參數(shù)可以去掉它,用別的辦法吧。
- PC官方版
- 安卓官方手機版
- IOS官方手機版