mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-21 11:34:38 +02:00
361 lines
7.3 KiB
Groff
361 lines
7.3 KiB
Groff
." Copyright (c) 1994, 2010, Oracle and/or its affiliates. All rights reserved.
|
|
." DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
."
|
|
." This code is free software; you can redistribute it and/or modify it
|
|
." under the terms of the GNU General Public License version 2 only, as
|
|
." published by the Free Software Foundation.
|
|
."
|
|
." This code is distributed in the hope that it will be useful, but WITHOUT
|
|
." ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
." FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
." version 2 for more details (a copy is included in the LICENSE file that
|
|
." accompanied this code).
|
|
."
|
|
." You should have received a copy of the GNU General Public License version
|
|
." 2 along with this work; if not, write to the Free Software Foundation,
|
|
." Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
."
|
|
." Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
|
." or visit www.oracle.com if you need additional information or have any
|
|
." questions.
|
|
."
|
|
.TH javap 1 "02 Jun 2010"
|
|
|
|
.LP
|
|
.SH "名前"
|
|
javap \- Java クラスファイル逆アセンブラ
|
|
.LP
|
|
.RS 3
|
|
|
|
.LP
|
|
.LP
|
|
クラスファイルを逆アセンブルします。
|
|
.LP
|
|
.RE
|
|
.SH "形式"
|
|
.LP
|
|
|
|
.LP
|
|
.nf
|
|
\f3
|
|
.fl
|
|
javap [ \fP\f3options\fP\f3 ] class. . .
|
|
.fl
|
|
\fP
|
|
.fi
|
|
|
|
.LP
|
|
.SH "説明"
|
|
.LP
|
|
|
|
.LP
|
|
.LP
|
|
\f3javap\fP コマンドは、クラスファイルを逆アセンブルします。その出力は指定するオプションにより異なります。オプションを指定しない場合、\f3javap\fP は、そのパッケージ、渡されたクラスの protected および public のフィールドとメソッドを出力します。 \f3javap\fP はその出力を標準出力に表示します。たとえば、次のクラス宣言をコンパイルするとします。
|
|
.LP
|
|
.RS 3
|
|
|
|
.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
|
|
.RE
|
|
|
|
.LP
|
|
.LP
|
|
\f3javap DocFooter\fP がもたらす出力は次のようになります。
|
|
.LP
|
|
.RS 3
|
|
|
|
.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
|
|
.RE
|
|
|
|
.LP
|
|
.LP
|
|
\f3javap \-c DocFooter\fP がもたらす出力は次のようになります。
|
|
.LP
|
|
.RS 3
|
|
|
|
.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
|
|
|
|
.fl
|
|
Method DocFooter()
|
|
.fl
|
|
0 aload_0
|
|
.fl
|
|
1 invokespecial #1 <Method java.applet.Applet()>
|
|
.fl
|
|
4 return
|
|
.fl
|
|
|
|
.fl
|
|
Method void init()
|
|
.fl
|
|
0 aload_0
|
|
.fl
|
|
1 sipush 500
|
|
.fl
|
|
4 bipush 100
|
|
.fl
|
|
6 invokevirtual #2 <Method void resize(int, int)>
|
|
.fl
|
|
9 aload_0
|
|
.fl
|
|
10 aload_0
|
|
.fl
|
|
11 ldc #3 <String "LAST_UPDATED">
|
|
.fl
|
|
13 invokevirtual #4 <Method java.lang.String getParameter(java.lang.String)>
|
|
.fl
|
|
16 putfield #5 <Field java.lang.String date>
|
|
.fl
|
|
19 aload_0
|
|
.fl
|
|
20 aload_0
|
|
.fl
|
|
21 ldc #6 <String "EMAIL">
|
|
.fl
|
|
23 invokevirtual #4 <Method java.lang.String getParameter(java.lang.String)>
|
|
.fl
|
|
26 putfield #7 <Field java.lang.String email>
|
|
.fl
|
|
29 return
|
|
.fl
|
|
|
|
.fl
|
|
Method void paint(java.awt.Graphics)
|
|
.fl
|
|
0 aload_1
|
|
.fl
|
|
1 new #8 <Class java.lang.StringBuffer>
|
|
.fl
|
|
4 dup
|
|
.fl
|
|
5 invokespecial #9 <Method java.lang.StringBuffer()>
|
|
.fl
|
|
8 aload_0
|
|
.fl
|
|
9 getfield #5 <Field java.lang.String date>
|
|
.fl
|
|
12 invokevirtual #10 <Method java.lang.StringBuffer append(java.lang.String)>
|
|
.fl
|
|
15 ldc #11 <String " by ">
|
|
.fl
|
|
17 invokevirtual #10 <Method java.lang.StringBuffer append(java.lang.String)>
|
|
.fl
|
|
20 invokevirtual #12 <Method java.lang.String toString()>
|
|
.fl
|
|
23 bipush 100
|
|
.fl
|
|
25 bipush 15
|
|
.fl
|
|
27 invokevirtual #13 <Method void drawString(java.lang.String, int, int)>
|
|
.fl
|
|
30 aload_1
|
|
.fl
|
|
31 aload_0
|
|
.fl
|
|
32 getfield #7 <Field java.lang.String email>
|
|
.fl
|
|
35 sipush 290
|
|
.fl
|
|
38 bipush 15
|
|
.fl
|
|
40 invokevirtual #13 <Method void drawString(java.lang.String, int, int)>
|
|
.fl
|
|
43 return
|
|
.fl
|
|
\fP
|
|
.fi
|
|
.RE
|
|
|
|
.LP
|
|
.SH "オプション"
|
|
.LP
|
|
|
|
.LP
|
|
.RS 3
|
|
.TP 3
|
|
\-help
|
|
\f3javap\fP のヘルプメッセージを出力します。
|
|
.TP 3
|
|
\-l
|
|
行番号と局所変数テーブルを表示します。
|
|
.TP 3
|
|
\-b
|
|
JDK 1.1 の \f3javap\fP との下位互換性を保証します。
|
|
.TP 3
|
|
\-public
|
|
public クラスおよびメンバーだけを表示します。
|
|
.TP 3
|
|
\-protected
|
|
protected および public のクラスとメンバーだけを表示します。
|
|
.TP 3
|
|
\-package
|
|
package、protected、および public のクラスとメンバーだけを表示します。これはデフォルトの設定です。
|
|
.TP 3
|
|
\-private
|
|
すべてのクラスとメンバーを表示します。
|
|
.TP 3
|
|
\-Jflag
|
|
ランタイムシステムに直接 \f2flag\fP を渡します。使用例を次に示します。
|
|
.RS 3
|
|
|
|
.LP
|
|
.nf
|
|
\f3
|
|
.fl
|
|
javap \-J\-version
|
|
.fl
|
|
javap \-J\-Djava.security.manager \-J\-Djava.security.policy=MyPolicy MyClassName
|
|
.fl
|
|
\fP
|
|
.fi
|
|
.RE
|
|
.TP 3
|
|
\-s
|
|
内部の型シグニチャーを出力します。
|
|
.TP 3
|
|
\-c
|
|
クラスの各メソッドのために逆アセンブルされるコード、すなわち Java バイトコードから成る命令を表示します。これらは
|
|
.na
|
|
\f2「Java Virtual Machine Specification」\fP @
|
|
.fi
|
|
http://java.sun.com/docs/books/vmspec/にドキュメント化されています。
|
|
.TP 3
|
|
\-verbose
|
|
メソッドのスタックサイズ、および \f2locals\fP と \f2args\fP の数を出力します。
|
|
.TP 3
|
|
\-classpath path
|
|
\f3javap\fP がクラスを探すために使用するパスを指定します。デフォルトまたは CLASSPATH 環境変数設定を上書きします。ディレクトリはコロンで分割します。したがって、\f2path\fP の一般形式は次のようになります。
|
|
.nf
|
|
\f3
|
|
.fl
|
|
.:<your_path>
|
|
.fl
|
|
\fP
|
|
.fi
|
|
例を示します。
|
|
.nf
|
|
\f3
|
|
.fl
|
|
.:/home/avh/classes:/usr/local/java/classes
|
|
.fl
|
|
\fP
|
|
.fi
|
|
.TP 3
|
|
\-bootclasspath path
|
|
ブートストラップクラスをロードするパスを指定します。ブートストラップクラスは、デフォルトでは \f2jre/lib/rt.jar\fP および他のいくつかの JAR ファイル にある、コア Java 2 プラットフォームを実装するクラスです。
|
|
.TP 3
|
|
\-extdirs dirs
|
|
インストールされた拡張機能を検索する場所をオーバーライドします。The default location for extensions is the value of \f2java.ext.dirs\fP.
|
|
.RE
|
|
|
|
.LP
|
|
.SH "環境変数"
|
|
.LP
|
|
|
|
.LP
|
|
.RS 3
|
|
.TP 3
|
|
CLASSPATH
|
|
ユーザー定義クラスへのパスをシステムに指定します。ディレクトリはコロンで分割します。 次に例を示します。
|
|
.RS 3
|
|
|
|
.LP
|
|
.nf
|
|
\f3
|
|
.fl
|
|
.:/home/avh/classes:/usr/local/java/classes
|
|
.fl
|
|
\fP
|
|
.fi
|
|
.RE
|
|
.RE
|
|
|
|
.LP
|
|
.SH "関連項目"
|
|
.LP
|
|
|
|
.LP
|
|
.LP
|
|
javac(1)、 java(1)、jdb(1)、javah(1)、javadoc(1)
|
|
.LP
|
|
|