jdk自带的反编译在那个包下_求教JDK中的反编译命令

展开全部

用习惯了著名的反编32313133353236313431303231363533e78988e69d8331333361326265译工具jad的话,如果有的时候单给出class文件,要快速看这个class文件

的JDK版本号等,其实不用工具,也可以用JDK自带的javap命令进行反编译输出,下面小结

其用法:

1,javap -verbose  类名

得到的信息如下:

Compiled from "Test.java"

public class Test extends java.lang.Object

SourceFile: "Test.java"

minor version: 0

major version: 50

Constant pool:

......

可以看出jdk的版本,这个用在判断某些CLASS的版本是否兼容的时候很有用.

2 最常见的不带参数的情况:javap 类名

比如某个类:

Java代码package test;

public class Test {

int number = 5;

public void sayHello() {

System.out.println("Hello");

}

}

则:

C:\temp\javaptest>javap Test

Compiled from "Test.java"

public class test.Test extends java.lang.Object{

int number;

public test.Test();

public void sayHello();

}

带参数-c:

则可以看到字节码了:

Java代码C:\temp\javaptest>javap -c Test

Compiled from "Test.java"

public class test.Test extends java.lang.Object{

int number;

public test.Test();

Code:

0:   aload_0

1:   invokespecial   #1; //Method java/lang/Object."":()V

4:   aload_0

5:   iconst_5

6:   putfield        #2; //Field number:I

9:   return

public void sayHello();

Code:

0:   getstatic       #3; //Field java/lang/System.out:Ljava/io/PrintStream;

3:   ldc     #4; //String Hello

5:   invokevirtual   #5; //Method java/io/PrintStream.println:(Ljava/lang/String;)V

8:   return

}

带参数-l: 将显示行号和局部变量表

-public 只显示 public 类及成员。

-protected 只显示 protected 和 public 类及成员。

-package 只显示包、protected 和 public 类及成员。这是缺省设置。

-private 显示所有类和成员。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值