读书人

查看JVM类加载日记

发布时间: 2012-11-21 08:23:25 作者: rapoo

查看JVM类加载日志
在泰山项目时曾经解决过jar中类冲突、classes中的类与jar中的类有冲突、发布了代码由于weblgoic或tomcat中缓存的问题而无法看到修改效果……等问题。之前解决的办法是在eclipse中ctr+alt+t在弹出窗口中数据类名查看或者清空中间件缓存,如果所有这些都不行就重新构建工程重新发布并重启中间件并清空自己IE中的缓存等总之是把自己能想到的都用上一遍如果问题解决了就算了,解决不了就傻了!不过还好至今还没傻几次,呵呵。

在了解JVM类加载机制后在官方文档上竟然查到了能打印类加载日志的参数:-verbose:class 在jvm启动参数中加入这个参数即可以在控制台中查看类加载日志了, 控制台看到的日志内容如下:

[Loaded com.isoftstone.agent.FileServerAgent from file:/E:/Workspaces/workspace_ab/agent/WebRoot/WEB-INF/classes/com/isoftstone/agent/FileServerAgent.class]
[Loaded javax.annotation.Resource from C:\Program Files\Java\jdk1.7.0\jre\lib\rt.jar]
?

通过查看类加载日志,我们就可以知道类是在哪个物理位置加载的了,便于我们确认问题。不过遗憾的是没找到将类加载日志输出到指定文件的地方。? 由于V6在weblogic10G以后引入的一些jar包与weblgoic自带的包有冲突有时间去通过类加载器跟踪一下。



参数使用见:java - the Java application launcher(http://docs.oracle.com/javase/6/docs/technotes/tools/windows/java.html)?
-verbose -verbose:class Display information about each class loaded. -verbose:gc Report on each garbage collection event. -verbose:jni Report information about use of native methods and other Java Native Interface activity?.


类加载机制了解见博文:IBM网站上的《深入探讨 Java 类加载器》及《WebSphere的类加载机制和故障排查》,《再谈WebSphere的类加载和故障排查》。??

1 楼 gaolinwu 2011-12-28 从这里,又学一招!

读书人网 >编程

热点推荐