ざる魂

真似ぶ魂、学ぶの本質。知られざる我が魂

javapコマンドを使ってみた。

Javaは *.java から *.class を生成するが、これはテキストエディタで閲覧できないバイナリファイルだ。 これをエディタで閲覧できる状態にするには、jdkに標準搭載されているjavapコマンドを使用しすれば良い。

例えばhogeというパッケージにあるFuga.javaがあるとする。

package hoge;
public class Fuga {
    public static void main(String[] args) {
        System.out.println("Hello Javap!");
    }
}

これをコンパイルした結果をjavapで見たい時は、以下のようなコマンドを叩けばいい。 このときhoge.Fugaクラスはhoge/Fuga.lcassというディレクトリ構造になければならない。

javap -c hoge.Fuga > Fuga.code

Fuga.codeは以下のようになる。

Compiled from "Fuga.java"
public class hoge.Fuga {
  public hoge.Fuga();
    Code:
       0: aload_0       
       1: invokespecial #1                  // Method java/lang/Object."<init>":()V
       4: return        

  public static void main(java.lang.String[]);
    Code:
       0: getstatic     #2                  // Field java/lang/System.out:Ljava/io/PrintStream;
       3: ldc           #3                  // String Hello Javap!
       5: invokevirtual #4                  // Method java/io/PrintStream.println:(Ljava/lang/String;)V
       8: return        
}