隨筆-124  評(píng)論-49  文章-56  trackbacks-0

          http://www.kpdus.com/jad.html   官方最新版本,支持jdk1.6 

          Java下的一個(gè)簡(jiǎn)單易用的反編譯工具jad, 可以很方便的將.class反編譯為.Java. 點(diǎn)擊下載  

          一、基本用法
          Usage:jad [option(s)]
          直接輸入類文件名,且支持通配符,如下所示。
          c:\Java\>jad example1.class
          c:\Java\>jad *.class
          結(jié)果是將example1.class反編譯為example1.jad。將example1.jad改為example1.Java即得源文件。

          二、Option -o
          不提示,覆蓋源文件

          三、Option -s
          c:\Java\>jad -sJava example1.class
          反編譯結(jié)果以.Java為擴(kuò)展名。

          四、Option -p
          將反編譯結(jié)果輸出到屏幕
          c:\Java\>jad -p example1.class
          將反編譯結(jié)果重定向到文件
          c:\Java\>jad -p example1.class>example1.Java

          五、Option -d
          指定反編譯的輸出文件目錄
          c:\Java\>jad -o -dtest -sJava *.class

          該文章轉(zhuǎn)載自網(wǎng)絡(luò)大本營:http://www.haoad.net/Info/3883.Html

            反編譯別人的程序是不對(duì)的,但是有時(shí)候由于某種原因,不得不反編譯別人的代碼,那就需要一個(gè)工具了。小穎JAVA源代碼反編譯專家V1.4終極版是個(gè)很好的工具,但是只能對(duì)JDK1.4.2和之前的版本編譯的程序反編譯,而JDK5.0后的就無能為力了,但是可以下載JAD.EXE來逐個(gè)反編譯 CLASS文件,不過如果碰到有幾十個(gè)或幾百個(gè)文件夾,并且目錄很深的時(shí)候,就麻煩了,這個(gè)給出一個(gè)直接使用命令行反編譯整個(gè)目錄的方法:使用jad批量反編譯

          jad -o -r -sjava -d src bin/**/*.class

          src: 是反編後的目錄

          bin:指 package 開頭

          將bin里面所有的.class反編譯到src下面JAD下載: 文件名: jadnt157.ziphttp://download.pchome.net/php/dl.php?sid=9111


          jad:反編譯工具
          可以將class文件反編譯成java文件
          假設(shè)將jad.exe安裝在f:\java\jad目錄下
          把要反編譯的文件*.class復(fù)制到此目錄下,接著接以下步驟,
          在命令行窗口環(huán)境中進(jìn)入jad目錄,
          然后運(yùn)行:jad -s java *.class   (附,*.class指要反編譯的文件名)
          如果*.class文件和jad程序不在同一個(gè)目錄,就要用到path環(huán)境變量,
          將jad 所在目錄加到path路徑中即可:set path=%path%;f:\java\jad
          若要了解jad更為詳細(xì)的使用幫助信息,直接運(yùn)行jad.exe查看

          以下假設(shè)jad.exe在c:\java目錄下

          一、基本用法
          Usage:jad [option(s)]
          直接輸入類文件名,且支持通配符,如下所示。
          c:\java\>jad example1.class
          c:\java\>jad *.class
          結(jié)果是將example1.class反編譯為example1.jad。將example1.jad改為example1.java即得源文件。

          二、Option -o
          不提示,覆蓋源文件

          三、Option -s
          c:\java\>jad -sjava example1.class
          反編譯結(jié)果以.java為擴(kuò)展名。

          四、Option -p
          將反編譯結(jié)果輸出到屏幕
          c:\java\>jad -p example1.class
          將反編譯結(jié)果重定向到文件
          c:\java\>jad -p example1.class>example1.java

          五、Option -d
          指定反編譯的輸出文件目錄
          c:\java\>jad -o -dtest -sjava *.class

          六、Option -r
          按*.class的包結(jié)構(gòu)輸出文件目錄
          c:\java\>jad -o -r -dtest -sjava d:/1/**/*.class
          將d:\1\文件夾下的.class文件按照原程序的包結(jié)構(gòu)反編譯到test目錄下。

          命令行選擇的列表

                -a        - 用JVM字節(jié)格式來注解輸出
                -af       - 同 -a,但是注解的時(shí)候用全名稱
                -clear    - 清除所有的前綴
                -b        - 輸出多于的括號(hào) (e.g., if(a) { b(); }, default: no)
                -d

          - 指定輸出文件的文件目錄
                -dead      -試圖反編譯代碼的dead 部分(default: no)
                -disass   - 不用用字節(jié)碼的方式反編譯 (no JAVA source generated)
                -f        - 輸出整個(gè)的名字,無論是類還是方法
                -ff        -輸出類的成員在方法之前 (default: after methods)
                -i        - 輸出所有的變量的缺省的最初值
                -l    - 將strings分割成指定數(shù)目的塊的字符 (default: no)
                -lnc      - 將輸出文件用行號(hào)來注解 (default: no)
                -nl       - 分割strings用新行字符 newline character (default: no)
                -nodos    -不要去檢查class文件是否以dos方式寫 (CR before NL, default: check)
                -nocast   - 不要生成輔助文件
                -nocode    -不要生成方法的源代碼
                -noconv    - 不要轉(zhuǎn)換java的定義符 (default: do)
                -noctor   - 不允許空的構(gòu)造器存在
                -noinner   -關(guān)掉對(duì)內(nèi)部類的支持 (default: turn on)
                -nolvt    - 忽略局部變量的表信息
                -nonlb     - 不要輸出一個(gè)新行在打開一個(gè)括號(hào)之前 (default: do)
                -o        - 無需確認(rèn)直接覆蓋輸出 (default: no)
                -p        - 發(fā)送反編譯代碼到標(biāo)準(zhǔn)輸出 STDOUT (e.g., for piping)

           

          posted on 2009-12-13 22:40 junly 閱讀(963) 評(píng)論(0)  編輯  收藏 所屬分類: java
          主站蜘蛛池模板: 苏尼特右旗| 海林市| 绥芬河市| 滦平县| 冀州市| 凤凰县| 宜丰县| 三穗县| 南通市| 宜春市| 上饶市| 南宁市| 定结县| 工布江达县| 三门县| 延吉市| 锦州市| 舒城县| 香河县| 新晃| 平安县| 威远县| 应城市| 东港市| 蒙山县| 固阳县| 安龙县| 尚志市| 甘肃省| 利津县| 绥江县| 博野县| 万宁市| 平安县| 乌拉特前旗| 威海市| 饶平县| 新兴县| 长沙市| 马龙县| 万州区|