Java -verbose 不会为每个类提供文件位置



我们正在尝试调试我们的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)

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

您是否了解 IBM JDK 诊断指南?它包含一章"类装入器诊断"。

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

如果输出看起来像

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

。然后您的类是自动生成的

相关内容

  • 没有找到相关文章

最新更新