原如何获取Java动态生成类?

Posted nickt

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了原如何获取Java动态生成类?相关的知识,希望对你有一定的参考价值。

 

 

写作目的:Java大部分框架,如Spring,Hibernate等都会利用动态代理在程序运行的时候生成新的类,

有的时候为了学习,或者深入了解动态代理,想查看动态生成类的源代码究竟长怎么个样子,

通过这篇文章,我们就能够很容易到达目的。

 

工具:利用JDK自带的工具。

  相关命令:java -cp .;%JAVA_HOME%/lib/sa-jdi.jar sun.jvm.hotspot.HSDB

 

操作步骤:

1) 打开命令行窗口, 查看JDK安装目录

  技术分享图片 

2) 进入该目录

  技术分享图片

3)输入关键命令

  技术分享图片

  将会弹出一个Swing程序,如下图

  技术分享图片

 

 4) File->Attach to HotSpot Process, 并输入想查看Java进程的ProcessId

  技术分享图片

 

  技术分享图片

 

  技术分享图片

 

   技术分享图片

 

5)经过如上步骤,将会在当前目录下生成相应的Class文件,最后找一个反编译工具(如jd-gui)打开,即可以看到原码啦。

 

  技术分享图片

 

以上是关于原如何获取Java动态生成类?的主要内容,如果未能解决你的问题,请参考以下文章

java动态编译

解析xml文件,如何动态的封装成一个java类

Python 设置文档字符串并获取动态生成的类方法的方法名

Java Swing:从动态生成的 jTabbedPane 中获取值 [关闭]

Java中动态代理技术生成的类与原始类的区别 (good)

Java进阶学习第24天——动态代理与类加载器