Java教程

Javap工具

javap命令分解一个类文件。 javap命令显示有关类文件中存在的字段,构造函数和方法的信息。
使用javap工具的语法,让我们看看如何使用javap工具或命令。
javap fully_class_name
使用javap工具的示例
javap java.lang.Object
输出:
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工具来反汇编类文件。
javap Simple
输出:
Compiled from ".java"class Simple {
    Simple();
    public static void main(java.lang.String[]);
}

javap -c命令:您可以使用javap -c命令查看反汇编代码。反映Java字节码的代码。
javap -c Simple
输出:
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哈希)
-常量 显示静态最终常量
-版本 显示版本信息
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4