javap - Java クラスファイル逆アセンブラ

クラスファイルを逆アセンブルします。

機能説明

   javap [ options ] class. . .

説明

javap コマンドはクラスファイルを逆アセンブルします。その出力は指定するオプションにより異なります。何もオプションを指定しない場合、javap は渡されたクラスの public フィールドとメソッドを表示します。javap はその出力を標準出力に表示します。たとえば、次のクラス宣言をコンパイルしてください。
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 の出力は次のようになります。
Compiled from DocFooter.java
public class DocFooter extends java.applet.Applet {
    java.lang.String date;
    java.lang.String email;
    public void init();
    public void paint(java.awt.Graphics);
    public DocFooter();
}

オプション

-l
行と局所変数テーブルだけを表示します。

-b
JDK 1.1 での、javap との後方互換性を保証します。

-public
public クラスとメンバだけを表示します。

-protected
protected と public のクラスとメンバだけを表示します。

-package
package、protected、およびpublic のクラスとメンバだけを表示します。これがデフォルトです。

-private
すべてのクラスとメンバを表示します。

-J flag
ランタイム システムに直接 flag を渡します。

-s
内部型シグネチャをプリントします。

-c
クラスの各メソッドのために逆アセンブルされるコード、すなわち Java バイトコードから成る命令を表示します。

-classpath path
javap がクラスを探すために使用するパスを指定します。デフォルト、またはCLASSPATH 環境変数設定をオーバーライドします。ディレクトリはコロンで分割します。したがって、path の一般形式は次のようになります。

.:<your_path>
たとえば、パスの指定は次のとおりです。
.:/home/avh/classes:/usr/local/java/classes
-h
C 言語ヘッダファイルに置くことができるコードを生成します。

-verbose
メソッドのスタックサイズ、および localsargs の数をプリントします。

-verify
verifier を実行します。

-version
javap バージョン文字列を表示します。

環境変数

CLASSPATH
ユーザ定義クラスへのパスをシステムに指定します。ディレクトリはコロンで分割します。たとえば、次のとおりです。
.:/home/avh/classes:/usr/local/java/classes

参照

javac, java, jdb, javah, javadoc,