<!DOCTYPE html> <!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]--> <!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]--> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>classloader — Arthas 3.0.6-SNAPSHOT documentation</title> <link rel="shortcut icon" href="_static/favicon.ico"/> <link rel="stylesheet" href="_static/css/theme.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <link rel="stylesheet" href="_static/overrides.css" type="text/css" /> <link rel="index" title="Index" href="genindex.html" /> <link rel="search" title="Search" href="search.html" /> <link rel="next" title="redefine" href="redefine.html" /> <link rel="prev" title="jad" href="jad.html" /> <script src="_static/center_page.js"></script> <script src="_static/js/modernizr.min.js"></script> </head> <body class="wy-body-for-nav"> <div class="wy-grid-for-nav"> <nav data-toggle="wy-nav-shift" class="wy-nav-side"> <div class="wy-side-scroll"> <div class="wy-side-nav-search"> <a href="index.html" class="icon icon-home"> Arthas </a> <div class="version"> 3.0.6-SNAPSHOT </div> <div role="search"> <form id="rtd-search-form" class="wy-form" action="search.html" method="get"> <input type="text" name="q" placeholder="Search docs" /> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> </div> </div> <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation"> <ul class="current"> <li class="toctree-l1"><a class="reference internal" href="install-detail.html">Installation</a></li> <li class="toctree-l1"><a class="reference internal" href="quick-start.html">Quick start</a></li> <li class="toctree-l1"><a class="reference internal" href="advanced-use.html">Advanced usage</a></li> <li class="toctree-l1 current"><a class="reference internal" href="commands.html">Commands</a><ul class="current"> <li class="toctree-l2"><a class="reference internal" href="dashboard.html">dashboard</a></li> <li class="toctree-l2"><a class="reference internal" href="thread.html">thread</a></li> <li class="toctree-l2"><a class="reference internal" href="jvm.html">jvm</a></li> <li class="toctree-l2"><a class="reference internal" href="sysprop.html">sysprop</a></li> <li class="toctree-l2"><a class="reference internal" href="sysenv.html">sysenv</a></li> <li class="toctree-l2"><a class="reference internal" href="getstatic.html">getstatic</a></li> <li class="toctree-l2"><a class="reference internal" href="ognl.html">ognl</a></li> <li class="toctree-l2"><a class="reference internal" href="sc.html">sc</a></li> <li class="toctree-l2"><a class="reference internal" href="sm.html">sm</a></li> <li class="toctree-l2"><a class="reference internal" href="dump.html">dump</a></li> <li class="toctree-l2"><a class="reference internal" href="jad.html">jad</a></li> <li class="toctree-l2 current"><a class="current reference internal" href="#">classloader</a><ul> <li class="toctree-l3"><a class="reference internal" href="#options">Options</a></li> <li class="toctree-l3"><a class="reference internal" href="#usage">Usage</a></li> </ul> </li> <li class="toctree-l2"><a class="reference internal" href="redefine.html">redefine</a></li> <li class="toctree-l2"><a class="reference internal" href="monitor.html">monitor</a></li> <li class="toctree-l2"><a class="reference internal" href="watch.html">watch</a></li> <li class="toctree-l2"><a class="reference internal" href="trace.html">trace</a></li> <li class="toctree-l2"><a class="reference internal" href="stack.html">stack</a></li> <li class="toctree-l2"><a class="reference internal" href="tt.html">tt</a></li> <li class="toctree-l2"><a class="reference internal" href="options.html">options</a></li> <li class="toctree-l2"><a class="reference internal" href="commands.html#basic-arthas-commands">Basic Arthas Commands</a></li> </ul> </li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Auser-case">User cases</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/issues?q=label%3Aquestion-answered">Questions and answers</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas">Fork me at GitHub</a></li> <li class="toctree-l1"><a class="reference external" href="https://github.com/alibaba/arthas/blob/master/CONTRIBUTING.md">CONTRIBUTING</a></li> <li class="toctree-l1"><a class="reference internal" href="release-notes.html">Release Notes</a></li> </ul> </div> </div> </nav> <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> <nav class="wy-nav-top" aria-label="top navigation"> <i data-toggle="wy-nav-top" class="fa fa-bars"></i> <a href="index.html">Arthas</a> </nav> <div class="wy-nav-content"> <div class="rst-content"> <div role="navigation" aria-label="breadcrumbs navigation"> <ul class="wy-breadcrumbs"> <li><a href="index.html">Docs</a> »</li> <li><a href="commands.html">All Commands</a> »</li> <li>classloader</li> <li class="wy-breadcrumbs-aside"> <a href="https://github.com/alibaba/arthas/blob/master/site/src/site/sphinx/en/classloader.md" class="fa fa-github"> Edit on GitHub</a> </li> </ul> <hr/> </div> <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div itemprop="articleBody"> <div class="section" id="classloader"> <span id="classloader"></span><h1>classloader<a class="headerlink" href="#classloader" title="Permalink to this headline">¶</a></h1> <p>View hierarchy, urls and classes-loading info for the class-loaders.</p> <p><code class="docutils literal notranslate"><span class="pre">classloader</span></code> can search and print out the URLs for a specified resource from one particular classloader. It is quite handy when analyze <code class="docutils literal notranslate"><span class="pre">ResourceNotFoundException</span></code>.</p> <div class="section" id="options"> <span id="options"></span><h2>Options<a class="headerlink" href="#options" title="Permalink to this headline">¶</a></h2> <table border="1" class="docutils"> <thead> <tr> <th align="right">Name</th> <th align="left">Specification</th> </tr> </thead> <tbody> <tr> <td align="right">[l]</td> <td align="left">list all class loader instances</td> </tr> <tr> <td align="right">[t]</td> <td align="left">print classloader's hierarchy</td> </tr> <tr> <td align="right">[a]</td> <td align="left">list all the classes loaded by all the class loaders (use it with great caution since the output can be huge)</td> </tr> <tr> <td align="right">[c:]</td> <td align="left">print classloader's hashcode</td> </tr> <tr> <td align="right">[c: r:]</td> <td align="left">using class loader to search resource</td> </tr> </tbody> </table></div> <div class="section" id="usage"> <span id="usage"></span><h2>Usage<a class="headerlink" href="#usage" title="Permalink to this headline">¶</a></h2> <ul class="simple"> <li>View statistics categorized by class type</li> </ul> <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$ classloader name numberOfInstances loadedCountTotal com.taobao.pandora.service.loader.ModuleClassLoader <span class="m">29</span> <span class="m">11659</span> com.taobao.pandora.boot.loader.ReLaunchURLClassLoader <span class="m">1</span> <span class="m">5308</span> BootstrapClassLoader <span class="m">1</span> <span class="m">3711</span> com.taobao.arthas.agent.ArthasClassloader <span class="m">2</span> <span class="m">2825</span> sun.reflect.DelegatingClassLoader <span class="m">332</span> <span class="m">332</span> java.net.URLClassLoader <span class="m">1</span> <span class="m">285</span> sun.misc.Launcher<span class="nv">$AppClassLoader</span> <span class="m">1</span> <span class="m">77</span> sun.misc.Launcher<span class="nv">$ExtClassLoader</span> <span class="m">1</span> <span class="m">46</span> com.alibaba.fastjson.util.ASMClassLoader <span class="m">2</span> <span class="m">3</span> org.jvnet.hk2.internal.DelegatingClassLoader <span class="m">2</span> <span class="m">2</span> sun.reflect.misc.MethodUtil <span class="m">1</span> <span class="m">1</span> Affect<span class="o">(</span>row-cnt:11<span class="o">)</span> cost in <span class="m">66</span> ms. </pre></div> </div> <ul class="simple"> <li>View statistics categorized by loaded classes number</li> </ul> <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$ classloader -l name loadedCount hash parent BootstrapClassLoader 3711 null null com.alibaba.fastjson.util.ASMClassLoader@3bbaa1b8 2 3bbaa1b8 monitor's ModuleClassLoader com.alibaba.fastjson.util.ASMClassLoader@5e255d0b 1 5e255d0b eagleeye-core's ModuleClassLoader com.taobao.arthas.agent.ArthasClassloader@4fa2d7e6 1795 4fa2d7e6 sun.misc.Launcher$ExtClassLoader@a38d7a3 com.taobao.arthas.agent.ArthasClassloader@522400c2 1033 522400c2 sun.misc.Launcher$ExtClassLoader@a38d7a3 com.taobao.pandora.boot.loader.ReLaunchURLClassLoader@1817d444 5308 1817d444 sun.misc.Launcher$AppClassLoader@14dad5dc tbsession's ModuleClassLoader 285 609cd4d8 null pandora-qos-service's ModuleClassLoader 267 2f8dad04 null pandora-framework's ModuleClassLoader 78 4009e306 null filesync-client's ModuleClassLoader 4 4b8ee4de null rocketmq-client's ModuleClassLoader 431 247bddad null eagleeye-core's ModuleClassLoader 451 1ba9117e null alimonitor-jmonitor's ModuleClassLoader 134 22fcf7ab null metaq-client's ModuleClassLoader 35 41a2befb null hsf-mock's ModuleClassLoader 3 2002fc1d null monitor's ModuleClassLoader 1427 131ef10 null spas-sdk-service's ModuleClassLoader 7 10d307f1 null vipserver-client's ModuleClassLoader 137 7a419da4 null metrics's ModuleClassLoader 146 696da30b null mtop-uncenter's ModuleClassLoader 922 79d8407f null spas-sdk-client's ModuleClassLoader 235 4944252c null live-profiler-pandora's ModuleClassLoader 1 6913c1fb null notify-tr-client's ModuleClassLoader 472 fba92d3 null ons-sdk's ModuleClassLoader 70 23348b5d null tair-plugin's ModuleClassLoader 1053 7c9d8e2 null tddl-client's ModuleClassLoader 2354 4988d8b8 null config-client's ModuleClassLoader 93 429bffaa null diamond-client's ModuleClassLoader 360 3d5c822d null pandolet's ModuleClassLoader 99 41e1e210 null hsf's ModuleClassLoader 1796 3232a28a null acl.plugin's ModuleClassLoader 379 67080771 null buc.sso.client.plugin's ModuleClassLoader 195 13b6aecc null unitrouter's ModuleClassLoader 64 7e5afaa6 null switch's ModuleClassLoader 104 24313fcc null hsf-notify-client's ModuleClassLoader 57 4d0f2471 null java.net.URLClassLoader@7ec7ffd3 285 7ec7ffd3 sun.misc.Launcher$ExtClassLoader@a38d7a3 javax.management.remote.rmi.NoCallStackClassLoader@53f65459 1 53f65459 null javax.management.remote.rmi.NoCallStackClassLoader@2833cc44 1 2833cc44 null org.jvnet.hk2.internal.DelegatingClassLoader@72cda8ee 1 72cda8ee monitor's ModuleClassLoader org.jvnet.hk2.internal.DelegatingClassLoader@1f57f96d 1 1f57f96d monitor's ModuleClassLoader sun.misc.Launcher$AppClassLoader@14dad5dc 77 14dad5dc sun.misc.Launcher$ExtClassLoader@a38d7a3 sun.misc.Launcher$ExtClassLoader@a38d7a3 46 a38d7a3 null sun.reflect.misc.MethodUtil@1201f221 1 1201f221 sun.misc.Launcher$AppClassLoader@14dad5dc </pre></div> </div> <ul class="simple"> <li>View class-loaders hierarchy</li> </ul> <div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>$ classloader -t +-BootstrapClassLoader +-unitrouter<span class="s1">'s ModuleClassLoader</span> <span class="s1">+-diamond-client'</span>s ModuleClassLoader +-sun.misc.Launcher<span class="nv">$ExtClassLoader</span>@548a102f <span class="p">|</span> +-sun.misc.Launcher<span class="nv">$AppClassLoader</span>@14dad5dc <span class="p">|</span> +-com.taobao.arthas.agent.AgentLauncher<span class="nv">$1</span>@334e6bb8 <span class="p">|</span> <span class="p">|</span> +-sun.reflect.DelegatingClassLoader@328b3a05 <span class="p">|</span> <span class="p">|</span> +-sun.reflect.DelegatingClassLoader@73f44f24 </pre></div> </div> <ul class="simple"> <li>Show the URLs from which to load classes and resources for one particular URLClassLoader</li> </ul> <div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>$ classloader -c 5ffe9775 file:/Users/hello/soft/taobao-tomcat-7.0.64/deploy/taobao-hsf.sar/lib/commons-lang-2.6.jar file:/Users/hello/soft/taobao-tomcat-7.0.64/deploy/taobao-hsf.sar/lib/log4j-1.2.16.jar file:/Users/hello/soft/taobao-tomcat-7.0.64/deploy/taobao-hsf.sar/lib/logger.api-0.1.4.jar file:/Users/hello/soft/taobao-tomcat-7.0.64/deploy/taobao-hsf.sar/lib/pandora.api-2.0.7-SNAPSHOT.jar file:/Users/hello/soft/taobao-tomcat-7.0.64/deploy/taobao-hsf.sar/lib/pandora.container-2.0.7-SNAPSHOT.jar file:/Users/hello/soft/taobao-tomcat-7.0.64/deploy/taobao-hsf.sar/lib/pandora.thirdcontainer-2.0.7-SNAPSHOT.jar file:/Users/hello/soft/taobao-tomcat-7.0.64/deploy/taobao-hsf.sar/lib/picocontainer-2.14.3.jar </pre></div> </div> <ul class="simple"> <li>Use one class loader to search one particular resource</li> </ul> <div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>$ classloader -c 226b143b -r META-INF/MANIFEST.MF jar:file:/Users/hello/.m2/repository/javax/enterprise/cdi-api/1.0/cdi-api-1.0.jar!/META-INF/MANIFEST.MF jar:file:/Users/hello/.m2/repository/javax/annotation/jsr250-api/1.0/jsr250-api-1.0.jar!/META-INF/MANIFEST.MF </pre></div> </div> <ul class="simple"> <li>Use one class loader to search one particular class</li> </ul> <div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>$ classloader -c 1b6d3586 -r java/lang/String.class jar:file:/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home/jre/lib/rt.jar!/java/lang/String.class </pre></div> </div> </div> </div> </div> </div> <footer> <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation"> <a href="redefine.html" class="btn btn-neutral float-right" title="redefine" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a> <a href="jad.html" class="btn btn-neutral" title="jad" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a> </div> <hr/> <div role="contentinfo"> <p> © Copyright 2018, Alibaba Middleware Group, and contributors. </p> </div> Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. </footer> </div> </div> </section> </div> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT:'./', VERSION:'3.0.6-SNAPSHOT', LANGUAGE:'en', COLLAPSE_INDEX:false, FILE_SUFFIX:'.html', HAS_SOURCE: true, SOURCELINK_SUFFIX: '.txt' }; </script> <script type="text/javascript" src="_static/jquery.js"></script> <script type="text/javascript" src="_static/underscore.js"></script> <script type="text/javascript" src="_static/doctools.js"></script> <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> <script type="text/javascript" src="_static/js/theme.js"></script> <script type="text/javascript"> jQuery(function () { SphinxRtdTheme.Navigation.enable(true); }); </script> <div class="github-fork-ribbon-wrapper right"> <div class="github-fork-ribbon"> <a href="https://github.com/alibaba/arthas">Fork me at GitHub</a> </div> </div> <script type="text/javascript" src="_static/add_badges.js"></script> <script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?d5c5e25b100f0eb51a4c35c8a86ea9b4"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> </body> </html>