jdk⾃带⼯具javap反编译class⽂件
概述
jdk提供了反编译⼯具javap。使⽤反编译⼯具,可将字节码⽂件反编译为源码、有字节码命令的⽂件等。对于有class⽂件查看源码,分析Java程序性能提供了基础⽀持。以下粗略演⽰下⼯具使⽤,⼤致说下相关内容,更详细更具体的只是请相关知识书籍、资料学习。
安装jdk环境变量如何配置
准备⼯作及步骤
第⼀步,安装了jdk,且配置好了环境变量。
第⼆步,准备⼀个简单的Java⽂件并编译好。
第三步,使⽤javap进⾏反编译。
详细说明
第⼀步,已准备,不打算啰嗦,略过
第⼆步,准备的简单Java程序如
package fortest;
public class Test {
private String str;
}
编译后的class⽂件为
编译后的Test.class
第三步,反编译class
进⼊该class⽂件⽬录,打开cmd。如果不熟悉javap使⽤⽅法可javap或者javap -help可输出使⽤帮助信息。如
>javap
⽤法: javap <options> <classes>
其中, 可能的选项包括:
-help  --help  -?        输出此⽤法消息
-version                版本信息
-v  -verbose            输出附加信息
-l                      输出⾏号和本地变量表
-public                  仅显⽰公共类和成员
-protected              显⽰受保护的/公共类和成员
-package                显⽰程序包/受保护的/公共类
和成员 (默认)
-p  -private            显⽰所有类和成员
-c                      对代码进⾏反汇编
-s                      输出内部类型签名
-sysinfo                显⽰正在处理的类的
系统信息 (路径, ⼤⼩, ⽇期, MD5 散列)
-constants              显⽰最终常量
-classpath <path>        指定查⽤户类⽂件的位置
-cp <path>              指定查⽤户类⽂件的位置
反编译,输出如
如果想要输出私有成员,需使⽤javap -p Test.class
如果想要反汇编
如果想要更详细的反汇编信息,则使⽤javap -v -p Test.class
反汇编为 字节码命令有助于分析Java程序性能,⾄于如何分析,涉及的内容太多,本⼈也是略知⽪⽑,如果想深⼊学习,可以从《深⼊理解Java虚拟机:JVM⾼级特性与最佳实践(第2版)》学习。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。