JDK自带反编译工具javap

在JDK的bin文件夹下,有许多自带工具: javap就是其中的一个,对应为 javap.exe

javap可反编译查看Java编译器编译生成的字节码文件,

语法:

  javap [ options ] class  

options:
  -help  帮助
  -l  输出行和变量的表
  -public  只输出public方法和域
  -protected  只输出public和protected类和成员
  -package  只输出包,public和protected类和成员,这是默认的
  -p -private  输出所有类和成员
  -s  输出内部类型签名
  -c  输出分解后的代码,例如,类中每一个方法内,包含java字节码的指令,
  -verbose  输出栈大小,方法参数的个数
  -constants  输出静态final常量
 
例如:
 
先进入到class文件的目录,再执行:javap -verbose Helloworld.class   (有时候会报错,说是找不到该class,可以把.class去掉再执行下,只写类名即可。)
 从中可以看到jdk版本, major version: 51
  jdk版本和版本号的对照表
              十六进制    十进制
  JDK1.5      31          49
  JDK1.6      32          50
  JDK1.7      33          51
  JDK1.8      34          52
--------------------------------------------------------------------
javap -c Helloworld > F://Helloworld.txt
可将反编译结果输出到txt文件中
--------------------------------------------------------------------
问题总结:
 
1. 如果该类太长,反编译后导致cmd中看不到关键信息major version, 则需要修改cmd的属性(属性 -> 布局 -> 屏幕缓冲区的高度,调大一些)。
 
原文地址:https://www.cnblogs.com/FocusIN/p/7384613.html