javap是jvm自带的一个工具,主要用于反编译Java的class文件,比idea自带的反编译更加细致(我没有仔细研究过idea的反编译设置,默认的idea反编译比较简洁,无法查看语法糖实现细节),可以查看生成的字节码。
javap的用法格式:javap <options> <classes>
其中classes就是你要反编译的class文件。
在命令行中直接输入javap
或javap -help
可以看到javap的options有如下选项:
1 | -help --help -? 输出此用法消息 |
一般常用的是-v -l -c三个选项。
javap -v classes,不仅会输出行号、本地变量表信息、反编译汇编代码,还会输出当前类用到的常量池等信息。
javap -l 会输出行号和本地变量表信息。
javap -c 会对当前class字节码进行反编译生成汇编代码。