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

オプション

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

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

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

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

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

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

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

-Jflag
ランタイムシステムに直接 flag を渡します。使用例を次に示します。
javap -J-version
javap -J-Djava.security.manager -J-Djava.security.policy=MyPolicy MyClassName

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

-c
クラスの各メソッドのために逆アセンブルされるコード、すなわち Java バイトコードから成る命令を表示します。これらは「Java Virtual Machine Specification」にドキュメント化されています。

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

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

   .;<your_path>
パスの指定の例を次に示します。
   .;C:¥usrs¥dac¥classes;C:¥tools¥java¥classes
-bootclasspath path
ブートストラップクラスをロードするパスを指定します。ブートストラップクラスは、デフォルトでは jre¥lib¥rt.jar および jre¥lib¥i18n.jar にある、コア Java プラットフォームを実装するクラスです。

-extdirs dirs
インストールされた拡張機能を検索する位置をオーバーライドします。拡張機能は、デフォルトでは jre¥lib¥ext にあります。

環境変数

CLASSPATH
ユーザ定義クラスへのパスをシステムに指定します。ディレクトリはセミコロンで分割します。次に例を示しますす。
   .;C:¥usrs¥dac¥classes;C:¥tools¥java¥classes

関連項目

javacjavajdbjavah