javap.1 8.5 KB
Newer Older
M
mfang 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
'\" t
.\" Copyright (c) 1994, 2013, Oracle and/or its affiliates. All rights reserved.
.\" Title: javap
.\" Language: English
.\" Date: 2013年11月21日
.\" SectDesc: 基本ツール
.\" Software: JDK 8
.\" Arch: 汎用
.\"
.\" 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.
.\"
.pl 99999
.TH "javap" "1" "2013年11月21日" "JDK 8" "基本ツール"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
javap \- 1つ以上のクラス・ファイルを逆アセンブルします。
.SH "概要"
.sp
.if n \{\
.RS 4
.\}
T
tbell 已提交
58
.nf
M
mfang 已提交
59
\fIjavap\fR [\fIoptions\fR] \fIclassfile\fR\&.\&.\&.
T
tbell 已提交
60
.fi
M
mfang 已提交
61 62 63 64 65 66 67 68 69 70 71 72 73
.if n \{\
.RE
.\}
.PP
\fIoptions\fR
.RS 4
コマンドライン・オプション。オプションを参照してください。
.RE
.PP
\fIclassfile\fR
.RS 4
注釈の処理対象となる、空白で区切った1つ以上のクラス(DocFooter\&.classなど)。クラス・パスで検出できるクラスを、ファイル名またはURL(\fIfile:///home/user/myproject/src/DocFooter\&.class\fRなど)で指定できます。
.RE
74
.SH "説明"
M
mfang 已提交
75 76 77 78 79 80 81
.PP
\fIjavap\fRコマンドは、1つまたは複数のクラス・ファイルを逆アセンブルします。その出力は指定するオプションにより異なります。オプションを指定しない場合、\fIjavap\fRコマンドは、そのパッケージ、渡されたクラスのprotectedおよびpublicのフィールドとメソッドを出力します。\fIjavap\fRコマンドはその出力を\fI標準出力\fRに表示します。
.SH "オプション"
.PP
\-help, \-\-help, \-?
.RS 4
\fIjavap\fRコマンドについてのヘルプ・メッセージを出力します。
82
.RE
M
mfang 已提交
83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115
.PP
\-version
.RS 4
リリース情報を出力します。
.RE
.PP
\-l
.RS 4
行番号とローカル変数表を出力します。
.RE
.PP
\-public
.RS 4
publicクラスおよびメンバーのみ表示します。
.RE
.PP
\-protected
.RS 4
protectedおよびpublicのクラスとメンバーのみを表示します。
.RE
.PP
\-private, \-p
.RS 4
すべてのクラスとメンバーを表示します。
.RE
.PP
\-J\fIoption\fR
.RS 4
指定されたオプションをJVMに渡します。次に例を示します。
.sp
.if n \{\
.RS 4
.\}
D
duke 已提交
116
.nf
M
mfang 已提交
117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175
javap \-J\-version
javap \-J\-Djava\&.security\&.manager \-J\-Djava\&.security\&.policy=MyPolicy MyClassName
.fi
.if n \{\
.RE
.\}
JVMオプションの詳細は、コマンドのマニュアルを参照してください。
.RE
.PP
\-s
.RS 4
内部の型シグニチャを出力します。
.RE
.PP
\-sysinfo
.RS 4
処理中のクラスのシステム情報(パス、サイズ、日付、MD5ハッシュ)を表示します。
.RE
.PP
\-constants
.RS 4
\fIstatic final\fR定数を表示します。
.RE
.PP
\-c
.RS 4
クラスの各メソッドのために逆アセンブルされるコード、すなわちJavaバイトコードからなる命令を表示します。
.RE
.PP
\-verbose
.RS 4
メソッドのスタック・サイズ、localsとargumentsの数を出力します。
.RE
.PP
\-classpath \fIpath\fR
.RS 4
クラスを探すために\fIjavap\fRコマンドが使用するパスを指定します。デフォルトまたは\fICLASSPATH\fR環境変数の設定をオーバーライドします。
.RE
.PP
\-bootclasspath \fIpath\fR
.RS 4
ブートストラップ・クラスをロードするパスを指定します。ブートストラップ・クラスは、デフォルトでは\fIjre/lib/rt\&.jar\fRおよび他のいくつかのJARファイルにある、コアJavaプラットフォームを実装するクラスです。
.RE
.PP
\-extdir \fIdirs\fR
.RS 4
インストールされた拡張機能を検索する場所をオーバーライドします。拡張機能のデフォルト位置は\fIjava\&.ext\&.dirs\fRです。
.RE
.SH "例"
.PP
次の\fIDocFooter\fRクラスをコンパイルします。
.sp
.if n \{\
.RS 4
.\}
.nf
import java\&.awt\&.*;
import java\&.applet\&.*;
 
D
duke 已提交
176
public class DocFooter extends Applet {
T
tbell 已提交
177 178
        String date;
        String email;
M
mfang 已提交
179
 
T
tbell 已提交
180 181 182 183 184
        public void init() {
                resize(500,100);
                date = getParameter("LAST_UPDATED");
                email = getParameter("EMAIL");
        }
M
mfang 已提交
185
 
T
tbell 已提交
186
        public void paint(Graphics g) {
M
mfang 已提交
187 188
                g\&.drawString(date + " by ",100, 15);
                g\&.drawString(email,290,15);
T
tbell 已提交
189
        }
D
duke 已提交
190 191
}
.fi
M
mfang 已提交
192 193 194 195 196 197 198 199 200
.if n \{\
.RE
.\}
.PP
\fIjavap DocFooter\&.class\fRコマンドからの出力は次を生成します。
.sp
.if n \{\
.RS 4
.\}
D
duke 已提交
201
.nf
M
mfang 已提交
202 203 204 205
Compiled from "DocFooter\&.java"
public class DocFooter extends java\&.applet\&.Applet {
  java\&.lang\&.String date;
  java\&.lang\&.String email;
206 207
  public DocFooter();
  public void init();
M
mfang 已提交
208
  public void paint(java\&.awt\&.Graphics);
D
duke 已提交
209 210
}
.fi
M
mfang 已提交
211 212 213 214 215 216 217 218 219
.if n \{\
.RE
.\}
.PP
\fIjavap \-c DocFooter\&.class\fRコマンドからの出力は次を生成します。
.sp
.if n \{\
.RS 4
.\}
D
duke 已提交
220
.nf
M
mfang 已提交
221 222 223 224
Compiled from "DocFooter\&.java"
public class DocFooter extends java\&.applet\&.Applet {
  java\&.lang\&.String date;
  java\&.lang\&.String email;
D
duke 已提交
225

226 227 228
  public DocFooter();
    Code:
       0: aload_0       
M
mfang 已提交
229 230
       1: invokespecial #1                  // Method
java/applet/Applet\&."<init>":()V
231
       4: return        
D
duke 已提交
232

233 234 235 236 237 238 239 240 241
  public void init();
    Code:
       0: aload_0       
       1: sipush        500
       4: bipush        100
       6: invokevirtual #2                  // Method resize:(II)V
       9: aload_0       
      10: aload_0       
      11: ldc           #3                  // String LAST_UPDATED
M
mfang 已提交
242 243
      13: invokevirtual #4                  // Method
 getParameter:(Ljava/lang/String;)Ljava/lang/String;
244 245 246 247
      16: putfield      #5                  // Field date:Ljava/lang/String;
      19: aload_0       
      20: aload_0       
      21: ldc           #6                  // String EMAIL
M
mfang 已提交
248 249
      23: invokevirtual #4                  // Method
 getParameter:(Ljava/lang/String;)Ljava/lang/String;
250 251
      26: putfield      #7                  // Field email:Ljava/lang/String;
      29: return        
D
duke 已提交
252

M
mfang 已提交
253
  public void paint(java\&.awt\&.Graphics);
254 255 256 257
    Code:
       0: aload_1       
       1: new           #8                  // class java/lang/StringBuilder
       4: dup           
M
mfang 已提交
258 259
       5: invokespecial #9                  // Method
 java/lang/StringBuilder\&."<init>":()V
260 261
       8: aload_0       
       9: getfield      #5                  // Field date:Ljava/lang/String;
M
mfang 已提交
262 263
      12: invokevirtual #10                 // Method
 java/lang/StringBuilder\&.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
264
      15: ldc           #11                 // String  by 
M
mfang 已提交
265 266 267 268
      17: invokevirtual #10                 // Method
 java/lang/StringBuilder\&.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
      20: invokevirtual #12                 // Method
 java/lang/StringBuilder\&.toString:()Ljava/lang/String;
269 270
      23: bipush        100
      25: bipush        15
M
mfang 已提交
271 272
      27: invokevirtual #13                 // Method
 java/awt/Graphics\&.drawString:(Ljava/lang/String;II)V
273 274 275 276 277
      30: aload_1       
      31: aload_0       
      32: getfield      #7                  // Field email:Ljava/lang/String;
      35: sipush        290
      38: bipush        15
M
mfang 已提交
278 279
      40: invokevirtual #13                 // Method
java/awt/Graphics\&.drawString:(Ljava/lang/String;II)V
280 281
      43: return        
}
T
tbell 已提交
282
.fi
M
mfang 已提交
283
.if n \{\
D
duke 已提交
284
.RE
M
mfang 已提交
285
.\}
286
.SH "関連項目"
M
mfang 已提交
287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
javac(1)
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
java(1)
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
jdb(1)
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
javah(1)
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
javadoc(1)
.RE
.br
'pl 8.5i
'bp