使用javap
指令反組譯class檔的方式如下。
例如HelloWorld.java
內容如下,編譯後的檔案為HelloWorld.class
。
HelloWorld.java
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
將HelloWorld.class
反組譯的指令為javap -c HelloWorld
。執行後可看到Java虛擬機指令集(Java Virtual Machine Instruction Set)組成的操作命令
$ javap -c HelloWorld
Compiled from "HelloWorld.java"
public class HelloWorld {
public HelloWorld();
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 World
5: invokevirtual #4 // Method java/io/PrintStream.println:(Ljava/lang/String;)V
8: return
}
沒有留言:
張貼留言