." Copyright (c) 1994, 2011, Oracle and/or its affiliates. All rights reserved. ." .TH javap 1 "05 Jul 2012" .LP .SH "名前" javap \- Javaクラス・ファイル逆アセンブラ .LP .LP クラス・ファイルを逆アセンブルします。 .LP .SH "形式" .LP .nf \f3 .fl javap [ \fP\f3options\fP\f3 ] classes .fl \fP .fi .LP .SH "説明" .LP .LP \f3javap\fPコマンドは、1つまたは複数のクラス・ファイルを逆アセンブルします。その出力は指定するオプションにより異なります。オプションを指定しない場合、\f3javap\fPは、そのパッケージ、渡されたクラスのprotectedおよびpublicのフィールドとメソッドを出力します。\f3javap\fPはその出力を標準出力に表示します。 .LP .RS 3 .TP 3 options コマンドライン・オプション。 .TP 3 classes 注釈の処理対象となる1つ以上のクラス\f2DocFooter.class\fPなどのリスト(空白区切り)。クラス・パスで見つかるクラスは、ファイル名(\f2/home/user/myproject/src/DocFooter.class\fPなど)またはURL(\f2file:///home/user/myproject/src/DocFooter.class\fPなど)で指定できます。 .RE .LP .LP たとえば、次のクラス宣言をコンパイルするとします。 .LP .nf \f3 .fl import java.awt.*; .fl import java.applet.*; .fl .fl public class DocFooter extends Applet { .fl String date; .fl String email; .fl .fl public void init() { .fl resize(500,100); .fl date = getParameter("LAST_UPDATED"); .fl email = getParameter("EMAIL"); .fl } .fl .fl public void paint(Graphics g) { .fl g.drawString(date + " by ",100, 15); .fl g.drawString(email,290,15); .fl } .fl } .fl \fP .fi .LP .LP \f3javap DocFooter.class\fPがもたらす出力は次のようになります。 .LP .nf \f3 .fl Compiled from "DocFooter.java" .fl public class DocFooter extends java.applet.Applet { .fl java.lang.String date; .fl java.lang.String email; .fl public DocFooter(); .fl public void init(); .fl public void paint(java.awt.Graphics); .fl } .fl \fP .fi .LP .LP \f3javap \-c DocFooter.class\fPがもたらす出力は次のようになります。 .LP .nf \f3 .fl Compiled from "DocFooter.java" .fl public class DocFooter extends java.applet.Applet { .fl java.lang.String date; .fl .fl java.lang.String email; .fl .fl public DocFooter(); .fl Code: .fl 0: aload_0 .fl 1: invokespecial #1 // Method java/applet/Applet."":()V .fl 4: return .fl .fl public void init(); .fl Code: .fl 0: aload_0 .fl 1: sipush 500 .fl 4: bipush 100 .fl 6: invokevirtual #2 // Method resize:(II)V .fl 9: aload_0 .fl 10: aload_0 .fl 11: ldc #3 // String LAST_UPDATED .fl 13: invokevirtual #4 // Method getParameter:(Ljava/lang/String;)Ljava/lang/String; .fl 16: putfield #5 // Field date:Ljava/lang/String; .fl 19: aload_0 .fl 20: aload_0 .fl 21: ldc #6 // String EMAIL .fl 23: invokevirtual #4 // Method getParameter:(Ljava/lang/String;)Ljava/lang/String; .fl 26: putfield #7 // Field email:Ljava/lang/String; .fl 29: return .fl .fl public void paint(java.awt.Graphics); .fl Code: .fl 0: aload_1 .fl 1: new #8 // class java/lang/StringBuilder .fl 4: dup .fl 5: invokespecial #9 // Method java/lang/StringBuilder."":()V .fl 8: aload_0 .fl 9: getfield #5 // Field date:Ljava/lang/String; .fl 12: invokevirtual #10 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; .fl 15: ldc #11 // String by .fl 17: invokevirtual #10 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; .fl 20: invokevirtual #12 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; .fl 23: bipush 100 .fl 25: bipush 15 .fl 27: invokevirtual #13 // Method java/awt/Graphics.drawString:(Ljava/lang/String;II)V .fl 30: aload_1 .fl 31: aload_0 .fl 32: getfield #7 // Field email:Ljava/lang/String; .fl 35: sipush 290 .fl 38: bipush 15 .fl 40: invokevirtual #13 // Method java/awt/Graphics.drawString:(Ljava/lang/String;II)V .fl 43: return .fl } .fl \fP .fi .LP .SH "オプション" .LP .RS 3 .TP 3 \-help \-\-help \-? \f3javap\fPのヘルプ・メッセージを出力します。 .TP 3 \-version バージョン情報を出力します。 .TP 3 \-l 行番号とローカル変数表を出力します。 .TP 3 \-public publicクラスおよびメンバーのみ表示します。 .TP 3 \-protected protectedおよびpublicのクラスとメンバーのみを表示します。 .TP 3 \-package package、protected、およびpublicのクラスとメンバーのみ表示します。これがデフォルトです。 .TP 3 \-private \-p すべてのクラスとメンバーを表示します。 .TP 3 \-Jflag ランタイム・システムに直接\f2flag\fPを渡します。使用例を次に示します。 .nf \f3 .fl javap \-J\-version .fl javap \-J\-Djava.security.manager \-J\-Djava.security.policy=MyPolicy MyClassName .fl \fP .fi .TP 3 \-s 内部の型シグニチャを出力します。 .TP 3 \-sysinfo 処理中のクラスのシステム情報(パス、サイズ、日付、MD5ハッシュ)を表示します。 .TP 3 \-constants static final定数を表示します。 .TP 3 \-c クラスの各メソッドのために逆アセンブルされるコード、すなわちJavaバイトコードからなる命令を表示します。これらは .na \f2Java Virtual Machine Specification\fP @ .fi http://docs.oracle.com/javase/specs/にドキュメント化されています。 .TP 3 \-verbose メソッドのスタック・サイズ、および\f2locals\fPと\f2args\fPの数を出力します。 .TP 3 \-classpath path \f3javap\fPがクラスを探すために使用するパスを指定します。デフォルトまたはCLASSPATH環境変数設定を上書きします。 .TP 3 \-bootclasspath path ブートストラップ・クラスをロードするパスを指定します。ブートストラップ・クラスは、デフォルトでは\f2jre/lib/rt.jar\fPおよび他のいくつかのJARファイルにある、コアJavaプラットフォームを実装するクラスです。 .TP 3 \-extdirs dirs インストールされた拡張機能を検索する場所をオーバーライドします。拡張機能のデフォルト位置は\f2java.ext.dirs\fPです。 .RE .LP .SH "関連項目" .LP .LP javac(1)、java(1)、jdb(1)、javah(1)、javadoc(1) .LP