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 環境変数の設定をオーバーライドします。ディレクトリはコロン(UNIX版)やセミコロン(Windows版)で分割します。path の一般形式は以下のようになります:
.:<your_path>
例えば:
.:/home/avh/classes:/usr/local/java/classes
-verbose
メソッドのスタックサイズ、および locals と args の数を表示します。

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

環境変数

CLASSPATH
ユーザ定義クラスへのパスをシステムに指定します。ディレクトリはコロン(UNIX版)やセミコロン(Windows版)で分割します。たとえば、
UNIXの場合
   .:/home/me/classes:/usr/local/java/classes.jar

Windowsの場合
   .;C:\home\me\classes;C:\java\classes.jar