java—从jvm获取加载的类名

np8igboo  于 2021-07-13  发布在  Java
关注(0)|答案(2)|浏览(399)

**结束。**此问题需要详细的调试信息。它目前不接受答案。
**想改进这个问题吗?**更新问题,使其成为堆栈溢出的主题。

15天前关门了。
改进这个问题
我想为我的tomcat服务在jvm中加载所有类名。有没有办法用java。。。我见过反射,但它是针对特定的类加载器的,它没有给出jvm中加载的类。

r3i60tvu

r3i60tvu1#

从java获取所有已加载类的规范方法是调用 Instrumentation.getAllLoadedClasses() 从instrumentation api。
但是,这需要一个 Instrumentation ,仅对java代理可用。如果无法(或不想)使用代理启动应用程序,可以在运行时附加bytebuddyagent:

Instrumentation inst = ByteBuddyAgent.install();
Class[] loadedClasses = inst.getAllLoadedClasses();
4uqofj5v

4uqofj5v2#

您可以看到使用jvm统一日志框架启用日志,并执行以下操作

java -Xlog:class+load=info:classloaded.txt

相关问题