3

我们正在尝试使用我们的 WAS(Websphere Application Server)实例调试一些平均类加载器问题。

为此,我们提供了选项 -verbose:class 以查看 WAS 从何处加载哪个类。

对于大多数类,我们得到类似的输出

Loading class <some class> from <some jar file>

但仅适用于某些课程(包括导致问题的课程)

Loading class <some class>

被打印出来。

这些是从哪里来的?让他们直接从地狱中加载,或者 IBM 为什么要保护他们的真实身份?

更新:我们正在寻找的类是 javax.xml.ws.Service 应该真的来自 rt.jar (我们得到一个 java.lang.VerifyError 就可以了)

4

3 回答 3

4

如果您对 JVM 读取哪些文件感兴趣,可以使用 strace、dtrace 或 lsof 等操作系统工具来观察进程读取的文件。尽管这不会告诉您从该文件中加载了哪些类。

您了解IBM JDK 诊断指南吗?它包含一章“类加载器诊断”。

于 2011-05-19T12:24:37.190 回答
3

也许您要加载的类不是来自罐子?也许它是即时生成的?类的名称可能包含一个提示...

于 2011-05-19T12:14:19.683 回答
2

如果输出看起来像

[Loaded $Proxy2 by instance of java.lang.reflect.Proxy]

...然后你的类是自动生成的

于 2011-05-19T12:19:59.240 回答