详解JDK自带javap命令反编译class文件和Jad反编译class文件

发布时间:2026-09-28 17:35:35 浏览次数:1

详解JDK自带javap命令反编译class文件和Jad反编译class文件

什么是javap命令和Jad反编译?

  • javap命令是JDK自带的反编译工具,用于反编译class文件。
  • Jad是一款免费的Java反编译器,可以将class文件反编译为Java源代码。

使用javap命令反编译class文件

  1. 打开命令行工具,进入.class文件所在的目录。
  2. 键入javap -c -p classfile,其中classfile为需要反编译的.class文件名。
  3. -c表示反编译代码时显示代码中的所有指令。
  4. -p表示反编译代码时显示代码中的所有类和成员变量名以及修饰符。
  5. 查看输出结果,即为反编译后的代码。

示例:

$ javap -c -p MyClass.classCompiled from "MyClass.java"public class MyClass {  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}

使用Jad反编译class文件

  1. 下载Jad,并放在合适的位置(比如C:\jad下)。
  2. 将.class文件复制到Jad所在的目录下(比如C:\jad)。
  3. 打开命令行工具,进入Jad所在目录。
  4. 键入jad -sjava classfile,其中classfile为需要反编译的.class文件名。
  5. -sjava表示将反编译结果输出到一个.java文件中。
  6. 查看输出结果,即为反编译后的代码。

示例:

$ jad -sjava MyClass.classParsing MyClass.class...Generating MyClass.java

反编译后的文件MyClass.java内容:

public class MyClass{    public static void main(String args[])    {        System.out.println("Hello World!");    }}

总结

Javap和Jad都是Java反编译的利器,使用简单方便,并且效果好。其中,Jad还支持反编译多个class文件,并可以将整个目录下的.class文件全部反编译。

需要做网站?需要网络推广?欢迎咨询客户经理 13272073477