Javap工具
javap命令分解一个类文件。 javap命令显示有关类文件中存在的字段,构造函数和方法的信息。
使用javap工具的语法,让我们看看如何使用javap工具或命令。
使用javap工具的示例
输出:
Compiled from "Object.java"public class java.lang.Object {
public java.lang.Object();
public final native java.lang.Class<
?>
getClass();
public native int hashCode();
public boolean equals(java.lang.Object);
protected native java.lang.Object clone() throws java.lang.CloneNotSupportedException;
public java.lang.String toString();
public final native void notify();
public final native void notifyAll();
public final native void wait(long) throws java.lang.InterruptedException;
public final void wait(long, int) throws java.lang.InterruptedException;
public final void wait() throws java.lang.InterruptedException;
protected void finalize() throws java.lang.Throwable;
static {
}
;
}
为您的课程使用javap工具的另一个示例 ,让我们对java文件使用javap命令。
class Simple{
public static void main(String args[]){
System.out.println("hello java");
}
}
现在让我们使用javap工具来反汇编类文件。
输出:
Compiled from ".java"class Simple {
Simple();
public static void main(java.lang.String[]);
}
javap -c命令:您可以使用javap -c命令查看反汇编代码。反映Java字节码的代码。
输出:
Compiled from ".java"class Simple {
Simple();
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 java 5: invokevirtual #4
// Method java/io/PrintStream.println:(Ljava/lang/String;)V 8: return }
javap工具的选项
javap工具的重要选项如下。
选项 |
说明 |
-帮助 |
打印帮助消息。 |
-l |
打印行号和局部变量 |
-c |
反汇编代码 |
-s |
打印内部类型签名 |
-sysinfo |
显示系统信息(路径,大小,日期,MD5哈希) |
-常量 |
显示静态最终常量 |
-版本 |
显示版本信息 |