Java获取动态生成的代理类

时间:2024-03-26 22:55:12

Java获取动态生成的代理类

以下以获取mybatis动态代理为例子

获取java进程的id

使用cmd命令,获取java运行id,可见端口号为11944

netstat -aon|findstr "端口号" 

Java获取动态生成的代理类

查看JVM运行数据

  • 使用cmd命令,开启HSDB工具
java -classpath "%JAVA_HOME%/lib/sa-jdi.jar" sun.jvm.hotspot.HSDB

Java获取动态生成的代理类

  • 点击file下面的Attach to hotSpot process
    Java获取动态生成的代理类
  • 输入进程id:11944
    Java获取动态生成的代理类
    点击Tools下的Class Browser,输入动态代理的class名称$Proxy77,查询后点击Create .class for this class,动态类的字节码文件成功创建
    Java获取动态生成的代理类
    Java获取动态生成的代理类
  • 然后到当前cmd运行的目录找到$Proxy77.class,反编译得到Class内容
  • 获取java字节码,使用以下命令获取字节码文件到当前目录
获取java字节码
javap -v -p -s -sysinfo -constants  $Proxy77.class > class.txt

相关文章