`
k1121
  • 浏览: 176565 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

查看JVM类加载日志

    博客分类:
  • 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的类加载和故障排查》。

0
1
分享到:
评论
1 楼 gaolinwu 2011-12-28  
从这里,又学一招!

相关推荐

    Android代码-JVM-Sandbox

    我想开发录制回放、故障模拟、动态日志、行链路获取等等工具,就算我开发完成了,这些工具底层实现原理相同,同时使用,要怎么消除这些工具之间的影响,怎么保证这些工具动态加载,怎么保证动态加载/

    java版本awk日志分析

    环境:linux 优点:可分析大日志,大量文件,避免java分析大日志的数据量过... 高效,调用linux shell预筛选,不需加载日志加载的jvm内存。 快速,2-3G的文件可在几十秒内完成筛选,相对java代码分析日志速度明显提升。

    demo:记录日常学习过程中使用到的语言及工具

    java8并发包使用20201221添加JVM类加载器(启动,扩展,应用,自定义)相关示例20201129添加hadoop相关示例添加spark SQL综合案例20201128添加类加载器相关的示例添加Scala包及包对象的实例20201125添加Spark SQL U

    arthas-boot.jar

    这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception? 我改的代码为什么没有执行到?难道是我没 commit?分支搞错了? 遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗? 线上遇到某个用户...

    arthas-idea-plugin.zip

    这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception? 我改的代码为什么没有执行到?难道是我没 commit?分支搞错了? 遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗? 线上遇到某个用户...

    arthas-master.zip

    Arthas 是Alibaba开源的Java诊断工具,当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决:这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?我改的代码为什么没有执行到?难道是我没 commit?...

    是Alibaba开源的Java诊断工具

    这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception? 我改的代码为什么没有执行到?难道是我没 commit?分支搞错了? 遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗? 线上遇到某个用户的...

    java内核源码-JavaCompass:「Java指南针」为你学习Java指明方向。内容涵盖互联网Java工程师所需要掌握的核心知识,涉及J

    JVM类加载机制详解 JVM内存模型 类字节码文件深度剖析 垃圾收集机制详解 十种垃圾收集器详解 JVM调优工具详解 GC日志详细分析 JVM调优实战 Mysql性能调优 SQL执行原理详解 索引底层剖析 执行计划与SQL优化 Mysql锁...

    java8集合源码分析-geektime-java-week-training-camp:极客时间-Java每周训练营

    类加载器、JVM 内存模型、JVM 启动参数详解; JDK 内置命令行工具、JDK 内置图形界面工具、JDWP 简介、JMX 与相关工具; 常见的 JVM GC 算法(Parallel GC/CMS GC/G1 GC)基本原理和特点; 新一代 GC 算法(Java11 ...

    arthas-bin.zip

    这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception? 我改的代码为什么没有执行到?难道是我没 commit?分支搞错了? 遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗? 线上遇到某个用户...

    Java虚拟机

    第三部分分析了虚拟机的执行子系统,包括类文件结构、虚拟机类加载机制、虚拟机字节码执行引擎。第四部分讲解了程序的编译与代码的优化,阐述了泛型、自动装箱拆箱、条件编译等语法糖的原理;讲解了虚拟机的热点探测...

    arthas教程详解

    这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception? 我改的代码为什么没有执行到?难道是我没 commit?分支搞错了? 遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗? 线上遇到某个用户的...

    arthas 3.5.6

    Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等...

    阿里开源的 java 诊断工具—— Arthas

    这个类是从哪个 jar 包加载而来的? 为什么会报各种类相关的 Exception? 线上遇到问题无法 debug 好蛋疼,难道只能反复通过增加 System.out 或通过加日志再重新发布吗? 线上的代码为什么没有执行到这里?是由于...

    arthas-boot.jar(阿尔萨斯)

    这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception? 我改的代码为什么没有执行到?难道是我没 commit?分支搞错了? 遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗? 线上遇到某个用户的...

    arthas 3.3.6

    这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception? 我改的代码为什么没有执行到?难道是我没 commit?分支搞错了? 遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗? 线上遇到某个用户...

    gc-log-parser:Oracle JDK 的 Java GC 日志解析器

    您可以将它们加载到您最喜欢的工具中进行分析。 请参阅以下鼓舞人心的文章作为示例 -。 要求 该库需要 Java 1.8。 文档 支持的 JVM 选项 该库能够解析使用关键 GC 日志记录选项生成的日志: -XX:+PrintGC(或 -...

    JAVA_API1.6文档(中文)

    java.util.logging 提供 JavaTM 2 平台核心日志工具的类和接口。 java.util.prefs 此包允许应用程序存储并获取用户和系统首选项和配置数据。 java.util.regex 用于匹配字符序列与正则表达式指定模式的类。 java....

    arthas.png

    这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception? 我改的代码为什么没有执行到?难道是我没 commit?分支搞错了? 遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗? 线上遇到某个用户...

Global site tag (gtag.js) - Google Analytics