javap(1)

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

形式
javap [ options ] class...

機能説明
javap コマンドは、 Java クラスファイルを逆アセンブルします。 出力内容はオプションで指定します。 オプションを 1 つも指定しないと、 javap は渡されたクラスの package、 protected、 および public フィールドとメソッドを出力します。 javap コマンドの出力先は stdout です。たとえば、以下のクラス宣言をコンパイルします。

    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();
    }

オプション
以下のオプションが使用できます。

-b  JDK 1.1 の javap との下位互換を保証します。

-bootclasspath path
    bootstrap クラスをロードするパスを指定します。デフォルトでは、bootstrap クラスはコアとなる Java プラットフォームを実装するクラスで、 jre/lib/rt.jar と jre/lib/charsets.jar にあります。

-c  クラス内の個々のメソッドについて、逆アセンブルされたコード、 すなわち Java バイトコードからなる命令を出力します。詳細は、『Java Virtual Machine Specification』を参照してください。

-classpathpath
    javap がクラスを探すのに用いるパスを path で指定します。この指定値は、デフォルトおよび CLASSPATH 環境変数の設定値をオーバーライドします。 複数のディレクトリを指定する場合はコロン (:) で区切ります。 したがって path の一般形式は次のようになります。

    .:<your_path>

    パスの指定例：

    .:/home/avh/classes:/usr/local/java/classes

-extdirsdirs
    インストールされた拡張機能を検索する場所を指定します。デフォルトの拡張機能の場所は jre/lib/ext です。

-help
    javap のヘルプメッセージを出力します。

-Jflag
    実行時システムに直接渡すフラグを指定します。

    javap -J-version

    javap -JJ-Djava.security.manager \
    -Djava.security.policy=MyPolicy MyClassName

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

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

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

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

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

-s  内部型シグニチャを出力します。

-verbose
    メソッドのスタックサイズ、および local と arg の数を出力します。

環境

CLASSPATH
    ユーザ定義クラスへのパスをシステムに通知するために使用します。 複数のディレクトリを指定する場合はコロンで区切ります。 以下に例を示します。

    .:/home/avh/classes:/usr/local/java/classes

関連項目
java(1), javac(1), javadoc(1), javah(1), jdb(1)