是否有任何工具可以连接到 jvm 并实时向您展示如何在该 jvm 中加载类?
我想它会成为一个很棒的 jvisualvm 插件......但是没有找到这样的东西让我想知道这是否可行?
我只找到了一些对一些看似“晦涩”的工具的引用,这些工具与 weblogic 或 webspere 严格相关。
假设这样的工具是可能的,它是否与特定容器严格相关?
谢谢!
最佳答案
我意识到这不适用于已经在运行的 JVM,但是 java -verbose:class
怎么样? ?
如果要调试特定类的类加载器问题,可以连接调试器并为该类设置类加载断点(Eclipse 就是这样调用它们的,在 IntelliJ 中,您只需在类的第一行放置一个断点)。
更新:既然你提到你想看到类加载器,理论上我猜你可以写一个调用 java.lang.instrument.Instrumentation.getAllLoadedClasses()
的代理。在 agentmain
并打印一个类及其类加载器的树。但问题是 ClassLoader
没有“身份”,因此您可能会得到一张漂亮的图片,但您仍然不知道哪个类加载器属于哪个 Java EE 部署或 OSGi 包。我想这就是为什么没有那么多工具可以做到这一点......
关于jvm - Java类加载可视化/分析工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5583573/