您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關如何將class文件反編譯成java文件的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
1. 簡單,只需理解基本的概念,就可以編寫適合于各種情況的應用程序;2. 面向對象;3. 分布性,Java是面向網絡的語言;4. 魯棒性,java提供自動垃圾收集來進行內存管理,防止程序員在管理內存時容易產生的錯誤。;5. 安全性,用于網絡、分布環境下的Java必須防止病毒的入侵。6. 體系結構中立,只要安裝了Java運行時系統,就可在任意處理器上運行。7. 可移植性,Java可以方便地移植到網絡上的不同機器。8.解釋執行,Java解釋器直接對Java字節碼進行解釋執行。
方法:1、下載“jad.exe”插件,將其和“.class”文件放置在同一目錄下;2、打開cmd命令窗口,使用cd命令進入“Jad.exe”所在目錄;3、執行“Jad -d java文件存放路徑 -sjava class文件路徑”命令即可。
本教程操作環境:windows7系統、java8版、DELL G3電腦。
jad.exe反編譯插件
下載地址可參考:
https://varaneckas.com/jad/
ttp://pan.baidu.com/s/1qWmNlww
說明
在眾多的JAVA反編譯工具中,有幾種非常著名的工具使用了相同的核心引擎——JAD,其中主要包括:Front End
Plus、mDeJava、Decafe Pro、Cavaj Java Decompiler、DJ Java
Decompiler、NMI’s Java Class
Viewer和國產的JAVA源代碼反編譯專家等等。JAD本身是一個命令行工具,沒有圖形界面,上述的這些工具大多是在JAD內核的基礎之上加了一個圖形界面而已。這么多種產品的共同選擇,足可證明JAD在JAVA反編譯領域中的尊貴地位。
操作
將jad.exe和.class文件放置在同一目錄下(非必需,可隨意,后面會講解)
開始-運行(或Win+R)-cmd打開系統命令窗口,進入Jad.exe所在目錄
例如:
f: cd F:\Jad
輸入命令Jad -d F:\Jad\test -sjava test\*.class
回車 即可生成Java文件
示例:
Jad -d F:\Jad\test -sjava test\*.class
備注說明: *.class 中*是通配符,默認選中此目錄下所有.class文件,如只需要反編譯某一個.class文件,可直接寫成 文件名+.class
如:Jad -d F:\Jad\test -sjava test\CaseInfoSaveAction.class
Jad命令--幫助提示:
-a - 用JVM字節格式來注解輸出
-af - 同 -a,但是注解的時候用全名稱
-clear - 清除所有的前綴
-b - 輸出多余的括號 (e.g., if(a) { b(); }, default: no)
-d < dir >- 指定輸出文件的文件目錄
-dead -試圖反編譯代碼的dead 部分(default: no)
-disass - 不用用字節碼的方式反編譯 (no JAVA source generated)
-f - 輸出整個的名字,無論是類還是方法
-ff -輸出類的成員在方法之前 (default: after methods)
-i - 輸出所有的變量的缺省的最初值
-l< num >- 將strings分割成指定數目的塊的字符 (default: no)
-lnc - 將輸出文件用行號來注解 (default: no)
-nl - 分割strings用新行字符 newline character (default: no)
-nodos -不要去檢查class文件是否以dos方式寫 (CR before NL, default: check)
-nocast - 不要生成輔助文件
-nocode -不要生成方法的源代碼
-noconv - 不要轉換java的定義符 (default: do)
-noctor - 不允許空的構造器存在
-noinner -關掉對內部類的支持 (default: turn on)
-nolvt - 忽略局部變量的表信息
-nonlb - 不要輸出一個新行在打開一個括號之前 (default: do)
-o - 無需確認直接覆蓋輸出 (default: no)
-p - 發送反編譯代碼到標準輸出 STDOUT (e.g., for piping)
-pa -用于生成源文件中的所有包的前綴
-pc -帶有數字名稱的類的前綴(默認值:_cls)
-pe -未使用異常名稱的前綴(默認值:_ex)
-pf -帶數字名稱字段的前綴(默認值:_fld)
-pi -使用。
-pl -帶數字名稱的局部變量前綴(默認值:_lcl)
-pm -帶有數值名稱的方法的前綴(默認值:_mth)
-pp -帶有數值名稱的方法parms前綴(默認值:_prm)
-pv -將具有相同類型的字段打包成一行(packfields)
-r -恢復包目錄結構
-s -輸出文件擴展名(默認:.jad)
-空格-關鍵字(if, while等)和表達式之間的輸出空格
-stat -顯示處理過的類/方法/字段的總數
-t -使用空格進行縮進(默認值:4)
-t -使用制表符代替空格進行縮進
-v -反編譯時顯示方法名
感謝各位的閱讀!關于“如何將class文件反編譯成java文件”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。