Java获取动态生成的代理类
以下以获取mybatis动态代理为例子
获取java进程的id
使用cmd命令,获取java运行id,可见端口号为11944
netstat -aon|findstr "端口号"
查看JVM运行数据
- 使用cmd命令,开启HSDB工具
java -classpath "%JAVA_HOME%/lib/sa-jdi.jar" sun.jvm.hotspot.HSDB
- 点击file下面的Attach to hotSpot process
- 输入进程id:11944
点击Tools下的Class Browser,输入动态代理的class名称$Proxy77,查询后点击Create .class for this class,动态类的字节码文件成功创建 - 然后到当前cmd运行的目录找到$Proxy77.class,反编译得到Class内容
- 获取java字节码,使用以下命令获取字节码文件到当前目录
获取java字节码
javap -v -p -s -sysinfo -constants $Proxy77.class > class.txt