javap - Java class檔案分解器
分解class檔案
摘要:
javap [ options ] class. . .
描述:
javap命令分解一個class檔案,它根據options來決定到底輸出什麼。如果沒有使用options,那么javap將會輸出包,類里的protected和public域以及類里的所有方法。javap將會把它們輸出在標準輸出上。來看這個例子,先編譯下面這個類。
Java代碼
import java.awt.*;
import java.applet.*;
public class DocFooter extends Applet {
String date;
String email;
public void init() {
resize(500,100);
date = getParameter("LAST_UPDATED");
email = getParameter("EMAIL");
}
public void paint(Graphics g) {
g.drawString(date + " by ",100, 15);
g.drawString(email,290,15);
}
}
在命令行上鍵入javap DocFooter後,輸出結果如下
Java代碼
Compiled from DocFooter.java
public class DocFooter extends java.applet.Applet {
java.lang.String date;
java.lang.String email;
public DocFooter();
public void init();
public void paint(java.awt.Graphics);
}
如果加入了-c,即javap -c DocFooter,那么輸出結果如下
Java代碼
Compiled from DocFooter.java
public class DocFooter extends java.applet.Applet {
java.lang.String date;
java.lang.String email;
public DocFooter();
public void init();
public void paint(java.awt.Graphics);
}
Method DocFooter()
0 aload_0
1 invokespecial #1
4 return
Method void init()
0 aload_0
1 sipush 500
4 bipush 100
6 invokevirtual #2
9 aload_0
10 aload_0
11 ldc #3
13 invokevirtual #4
16 putfield #5
19 aload_0
20 aload_0
21 ldc #6
23 invokevirtual #4
26 putfield #7
29 return
Method void paint(java.awt.Graphics)
0 aload_1
1 new #8
4 dup
5 invokespecial #9
8 aload_0
9 getfield #5
12 invokevirtual #10
15 ldc #11
17 invokevirtual #10
20 invokevirtual #12
23 bipush 100
25 bipush 15
27 invokevirtual #13
30 aload_1
31 aload_0
32 getfield #7
35 sipush 290
38 bipush 15
40 invokevirtual #13
43 return
當然,如果想分析這個檔案,可以講輸出結果輸出到一個檔案里。可以這樣寫
javap -c DocFooter > F://test.txt
這樣就會輸出到F盤的test.txt檔案中了。
選項:
-help 不說了
-l 輸出行和變數的表
-public 只輸出public方法和域
-protected 只輸出public和protected類和成員
-package 只輸出包,public和protected類和成員,這是默認的
-private 輸出所有類和成員
-s 輸出內部類型簽名
-c 輸出分解後的代碼,例如,類中每一個方法內,包含java位元組碼的指令,
-verbose 輸出棧大小,方法參數的個數
相關詞條
-
javap
javap是jdk自帶的一個工具,可以反編譯,也可以查看java編譯器生成的位元組碼,是分析代碼的一個好工具。 javap...: javap [ options ]...
-
Java開發工具
。 Javap:Java反彙編器,顯示編譯類檔案中的可訪問功能和數據,同時...
簡介 -
Java Development Kit
。 Javap:Java反彙編器,顯示編譯類檔案中的可訪問功能和數據...
-
Java開發包
。 Javap:Java反彙編器,顯示編譯類檔案中的可訪問功能和數據,同時顯示位元組...
-
JDK
。 Javap:Java反彙編器,顯示編譯類檔案中的可訪問功能和數據,同時...
簡介 組成 常用的包 環境配置 JDK常用基本工具 -
《Java程式設計實用教程》
4.14.1 javap反編譯 80 4.14.2 javadoc製作文檔 80...
1.圖書信息 內容簡介 2.圖書信息 內容簡介 圖書目錄 -
JDK[SunMicrosystems針對Java開發員的產品]
,或建立能被Java程式調用的C過程的頭檔案。 Javap:Java反...
簡介 基本組件 常用包 環境配置 常用工具 -
Java 程式設計實用教程
javap反編譯 804.14.2 javadoc製作文檔 80...
人民郵電出版社教材 內容提要 目錄 -
Java程式設計師修煉之道
1165.3 檢查類檔案1175.3.1 介紹javap...