假設 jad.exe 位於 c:\java 目錄。
jad example1.class
jad *.class
結果生成 example1.jad,改為 .java 即得源文件。
| 選項 | 說明 |
|---|---|
-o | 不提示,直接覆蓋源文件 |
-s <ext> | 指定輸出擴展名,如 -sjava 直接生成 .java |
-p | 輸出到標準輸出(屏幕),可重定向到文件:jad -p example.class > example.java |
-d <dir> | 指定輸出目錄,如 -o -dtest -sjava *.class |
-a:用 JVM 字節格式注解輸出-af:同 -a 但用全限定名-b:輸出多餘括號(如 if(a) { b(); })-dead:嘗試反編譯死代碼-disass:反組裝模式(不生成 Java 源碼)-f:輸出完整名稱(類/方法)-ff:類成員輸出在方法前-i:輸出變量默認初始值-l:分割長字符串-lnc:輸出帶行號-nl:用換行符分割字符串-nocast:不生成輔助轉型代碼-nocode:不生成方法源碼-noinner:關閉內部類支持-nolvt:忽略局部變量表信息-nonlb:左大括號前不換行掌握核心參數(-o, -s, -p, -d)即可應對絕大多數反編譯場景。