march alex's blog
          hello,I am march alex
          posts - 52,comments - 7,trackbacks - 0
          javap是JDK自帶的反匯編器,可以查看java編譯器為我們生成的字節(jié)碼。通過它,我們可以對照源代碼和字節(jié)碼,從而了解很多編譯器內(nèi)部的工作。
          語法:
            javap [ 命令選項(xiàng) ] class. . .
            javap 命令用于解析類文件。其輸出取決于所用的選項(xiàng)。若沒有使用選項(xiàng),javap 將輸出傳遞給它的類的 public 域及方法。javap 將其輸出到標(biāo)準(zhǔn)輸出設(shè)備上。
          命令選項(xiàng)
            -help 輸出 javap 的幫助信息。
            -l 輸出行及局部變量表。
            -b 確保與 JDK 1.1 javap 的向后兼容性。
            -public 只顯示 public 類及成員。
            -protected 只顯示 protected 和 public 類及成員。
            -package 只顯示包、protected 和 public 類及成員。這是缺省設(shè)置。
            -private 顯示所有類和成員。
            -J[flag] 直接將 flag 傳給運(yùn)行時系統(tǒng)。
            -s 輸出內(nèi)部類型簽名。
            -c 輸出類中各方法的未解析的代碼,即構(gòu)成 Java 字節(jié)碼的指令。
            -verbose 輸出堆棧大小、各方法的 locals 及 args 數(shù),以及class文件的編譯版本
            -classpath[路徑] 指定 javap 用來查找類的路徑。如果設(shè)置了該選項(xiàng),則它將覆蓋缺省值或 CLASSPATH 環(huán)境變量。目錄用冒號分隔。
             - bootclasspath[路徑] 指定加載自舉類所用的路徑。缺省情況下,自舉類是實(shí)現(xiàn)核心 Java 平臺的類,位于 jrelib
            t.jar 和 jrelibi18n.jar 中。
            -extdirs[dirs] 覆蓋搜索安裝方式擴(kuò)展的位置。擴(kuò)展的缺省位置是 jrelibext。
          例:
          public class Test {
              public static void main(String[] args) {
                  System.out.println("hello world!");
              }
          }
          然后再執(zhí)行以下命令:
          javac Test.java
          javap -c Test
          得到如下結(jié)果:
          Compiled from "Test.java"
          public class Test {
          public Test();
          Code:
          0: aload_0
          1: invokespecial #1 // Method java/lang/Object."":
          ()V
          4: return
          public static void main(java.lang.String[]);
          Code:
          0: getstatic #2 // Field java/lang/System.out:Ljava/
          io/PrintStream;
          3: ldc #3 // String hello world!
          5: invokevirtual #4 // Method java/io/PrintStream.printl
          n:(Ljava/lang/String;)V
          8: return
          }
          posted on 2015-03-05 14:25 marchalex 閱讀(340) 評論(2)  編輯  收藏 所屬分類: java小程序

          FeedBack:
          # re: 用javap進(jìn)行反匯編
          2015-03-05 15:55 | 京山游俠
          mark,以后用得到。  回復(fù)  更多評論
            
          # re: 用javap進(jìn)行反匯編
          2015-03-06 22:10 | marchalex
          @京山游俠
          希望對你能起到幫助:)  回復(fù)  更多評論
            
          主站蜘蛛池模板: 宁陕县| 德江县| 赫章县| 拉萨市| 台前县| 银川市| 太谷县| 琼结县| 察雅县| 吴堡县| 蒲江县| 丰都县| 平原县| 绥江县| 澄迈县| 福清市| 鹿邑县| 榆树市| 府谷县| 惠州市| 政和县| 海晏县| 囊谦县| 牡丹江市| 那曲县| 邹城市| 康乐县| 余干县| 聂荣县| 浙江省| 建瓯市| 石首市| 阳西县| 班戈县| 玛曲县| 谢通门县| 台北市| 和静县| 玉门市| 景洪市| 息烽县|