OS Manuals

javap(1)

javap(1) 基本ツール javap(1)

名前

javap - 1つ以上のクラス・ファイルを逆アセンブルします。

概要

javap [options] classfile...

options

コマンド行オプション。オプションを参照してください。

classfile

注釈の処理対象となる、空白で区切った1つ以上のクラス(DocFooter.classなど)。クラス・パスで検出できるクラスを、ファイル名またはURL(file:///home/user/myproject/src/DocFooter.classなど)で指定できます。

説明

javapコマンドは、1つまたは複数のクラス・ファイルを逆アセンブルします。その出力は指定するオプションにより異なります。オプションを指定しない場合、javapコマンドは、そのパッケージ、渡されたクラスのprotectedおよびpublicのフィールドとメソッドを出力します。javapコマンドはその出力を標準出力に表示します。

オプション

-help
--help
-?

javapコマンドについてのヘルプ・メッセージを出力します。

-version

リリース情報を出力します。

-l

行番号とローカル変数表を出力します。

-public

publicクラスおよびメンバーのみ表示します。

-protected

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

-private
-p

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

-Joption

指定されたオプションをJVMに渡します。次に例を示します。

javap -J-version
javap -J-Djava.security.manager -J-Djava.security.policy=MyPolicy MyClassName

JVMオプションの詳細は、コマンドのマニュアルを参照してください。

-s

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

-sysinfo

処理中のクラスのシステム情報(パス、サイズ、日付、MD5ハッシュ)を表示します。

-constants

static final定数を表示します。

-c

クラスの各メソッドのために逆アセンブルされるコード、すなわちJavaバイトコードからなる命令を表示します。

-verbose

メソッドのスタック・サイズ、localsとargumentsの数を出力します。

-classpath path

クラスを探すためにjavapコマンドが使用するパスを指定します。デフォルトまたはCLASSPATH環境変数の設定をオーバーライドします。

-bootclasspath path

ブートストラップ・クラスをロードするパスを指定します。ブートストラップ・クラスは、デフォルトではjre/lib/rt.jarおよび他のいくつかのJARファイルにある、コアJavaプラットフォームを実装するクラスです。

-extdir dirs

インストールされた拡張機能を検索する場所をオーバーライドします。拡張機能のデフォルト位置はjava.ext.dirsです。

例

次のDocFooterクラスをコンパイルします。

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.classコマンドからの出力は次を生成します。

Compiled from "DocFooter.java"
public class DocFooter extends java.applet.Applet {
  java.lang.String date;
  java.lang.String email;
  public DocFooter();
  public void init();
  public void paint(java.awt.Graphics);
}

javap -c DocFooter.classコマンドからの出力は次を生成します。

Compiled from "DocFooter.java"
public class DocFooter extends java.applet.Applet {
  java.lang.String date;
  java.lang.String email;

public DocFooter(); Code: 0: aload_0 1: invokespecial #1 // Method java/applet/Applet."<init>":()V 4: return
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 13: invokevirtual #4 // Method getParameter:(Ljava/lang/String;)Ljava/lang/String; 16: putfield #5 // Field date:Ljava/lang/String; 19: aload_0 20: aload_0 21: ldc #6 // String EMAIL 23: invokevirtual #4 // Method getParameter:(Ljava/lang/String;)Ljava/lang/String; 26: putfield #7 // Field email:Ljava/lang/String; 29: return
public void paint(java.awt.Graphics); Code: 0: aload_1 1: new #8 // class java/lang/StringBuilder 4: dup 5: invokespecial #9 // Method java/lang/StringBuilder."<init>":()V 8: aload_0 9: getfield #5 // Field date:Ljava/lang/String; 12: invokevirtual #10 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 15: ldc #11 // String by 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; 23: bipush 100 25: bipush 15 27: invokevirtual #13 // Method java/awt/Graphics.drawString:(Ljava/lang/String;II)V 30: aload_1 31: aload_0 32: getfield #7 // Field email:Ljava/lang/String; 35: sipush 290 38: bipush 15 40: invokevirtual #13 // Method java/awt/Graphics.drawString:(Ljava/lang/String;II)V 43: return }

関連項目

2014年8月8日 JDK 8

corretto-11 11.0.33.0.10-r0 · enterprise-packages · ingested 2026-10-28