前言
今天需要分析一个工程中的几个动态代理类,但是,这几个动态代理类是由javassist生成的,在target中是不存在其文件的,因此无法直接查看。然后搜索了一番,找到了使用HSDB(HotSpot Debugger)这个工具来查看的办法。
正文
直接上操做步骤吧,这个HSDB本就是一个实用工具,实践一下就会用了。
-
第一步. 运行起自己的应用。
-
第二步.
jps -l找到自己应用的PID -
第三步.
sudo java -classpath "$JAVA_HOME/lib/sa-jdi.jar" sun.jvm.hotspot.HSDB启动HSDB -
第四步.
File -> Attach to HotSpot Process...Attach上自己应用的PID
- 第五步.
Tools -> Class Browser
-
第六步. 按照要查找的动态代理类的类名作为关键字搜索(模糊搜索)
-
第七步. 在搜到的类结果面板中点
Create .class File,此时会在刚才我们执行打开HSDB命令的目录中生成对应的.class文件
- 第八步. 用idea查看生成对应的
.class文件即可
参考资料
从java进程里dump出类的class文件的小工具–dumpclass