有没有办法确定哪个类加载器加载特定的类?或者更具体地说,从加载特定类的位置?
我遇到了加载旧数据库驱动程序类的情况。我想找到加载旧驱动程序的文件。
我最初的方法是在 ClassLoader.loadClass(..) 方法上设置一个调试点,并在类加载后停止虚拟机,以查看哪个类加载器正在加载它。不幸的是,loadClass 方法被频繁调用,以至于很难在类加载的地方停止。我会尝试设置断点过滤器。然而,还有另一个问题:由于 ClassLoader 架构,即使 ClassLoader 不负责加载,也会调用 loadClass。
一定有更好的方法来实现我想要的。您有在哪里寻找解决方案的想法或建议吗?
你如何启动你的程序?
将以下选项添加到命令行记录正在加载的每个类的位置。
-verbose:class
这些日志通常出现在 sysout 中。但根据日志记录的配置方式,您可能需要四处查看。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)