You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
arthas/assets/jad.html.6c5585d2.js

121 lines
31 KiB
JavaScript

import{_ as l,o as i,c as u,a as s,b as a,w as t,e as n,d as o,r as p}from"./app.5024572d.js";const r={},d=s("h1",{id:"jad",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#jad","aria-hidden":"true"},"#"),n(" jad")],-1),k={href:"https://arthas.aliyun.com/doc/arthas-tutorials?language=en&id=command-jad",target:"_blank",rel:"noopener noreferrer"},m=s("code",null,"jad",-1),v=n(" online tutorial"),h=s("div",{class:"custom-container tip"},[s("p",{class:"custom-container-title"},"TIP"),s("p",null,"Decompile the specified classes.")],-1),b=s("code",null,"jad",-1),g=n(" helps to decompile the byte code running in JVM to the source code to assist you to understand the logic behind better. If you need to download the bytecode of classes in a specific package directory in bulk, you can refer to the "),y=n("dump"),w=n(" tool for assistance."),f=o(`<ul><li>The decompiled code is syntax highlighted for better readability in Arthas console.</li><li>It is possible that there&#39;s grammar error in the decompiled code, but it should not affect your interpretation.</li></ul><h2 id="options" tabindex="-1"><a class="header-anchor" href="#options" aria-hidden="true">#</a> Options</h2><table><thead><tr><th style="text-align:right;">Name</th><th style="text-align:left;">Specification</th></tr></thead><tbody><tr><td style="text-align:right;"><em>class-pattern</em></td><td style="text-align:left;">pattern for the class name</td></tr><tr><td style="text-align:right;"><code>[c:]</code></td><td style="text-align:left;">hashcode of the class loader that loads the class</td></tr><tr><td style="text-align:right;"><code>[classLoaderClass:]</code></td><td style="text-align:left;">The class name of the ClassLoader that executes the expression.</td></tr><tr><td style="text-align:right;"><code>[E]</code></td><td style="text-align:left;">turn on regex match while the default is wildcard match</td></tr></tbody></table><h2 id="usage" tabindex="-1"><a class="header-anchor" href="#usage" aria-hidden="true">#</a> Usage</h2><h3 id="decompile-java-lang-string" tabindex="-1"><a class="header-anchor" href="#decompile-java-lang-string" aria-hidden="true">#</a> Decompile <code>java.lang.String</code></h3><div class="language-java ext-java line-numbers-mode"><pre class="language-java"><code>$ jad <span class="token class-name"><span class="token namespace">java<span class="token punctuation">.</span>lang<span class="token punctuation">.</span></span>String</span>
<span class="token class-name">ClassLoader</span><span class="token operator">:</span>
<span class="token class-name">Location</span><span class="token operator">:</span>
<span class="token comment">/*
* Decompiled with CFR.
*/</span>
<span class="token keyword">package</span> <span class="token namespace">java<span class="token punctuation">.</span>lang</span><span class="token punctuation">;</span>
<span class="token keyword">import</span> <span class="token import"><span class="token namespace">java<span class="token punctuation">.</span>io<span class="token punctuation">.</span></span><span class="token class-name">ObjectStreamField</span></span><span class="token punctuation">;</span>
<span class="token keyword">import</span> <span class="token import"><span class="token namespace">java<span class="token punctuation">.</span>io<span class="token punctuation">.</span></span><span class="token class-name">Serializable</span></span><span class="token punctuation">;</span>
<span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>
<span class="token keyword">public</span> <span class="token keyword">final</span> <span class="token keyword">class</span> <span class="token class-name">String</span>
<span class="token keyword">implements</span> <span class="token class-name">Serializable</span><span class="token punctuation">,</span>
<span class="token class-name">Comparable</span><span class="token generics"><span class="token punctuation">&lt;</span><span class="token class-name">String</span><span class="token punctuation">&gt;</span></span><span class="token punctuation">,</span>
<span class="token class-name">CharSequence</span> <span class="token punctuation">{</span>
<span class="token keyword">private</span> <span class="token keyword">final</span> <span class="token keyword">char</span><span class="token punctuation">[</span><span class="token punctuation">]</span> value<span class="token punctuation">;</span>
<span class="token keyword">private</span> <span class="token keyword">int</span> hash<span class="token punctuation">;</span>
<span class="token keyword">private</span> <span class="token keyword">static</span> <span class="token keyword">final</span> <span class="token keyword">long</span> serialVersionUID <span class="token operator">=</span> <span class="token operator">-</span><span class="token number">6849794470754667710L</span><span class="token punctuation">;</span>
<span class="token keyword">private</span> <span class="token keyword">static</span> <span class="token keyword">final</span> <span class="token class-name">ObjectStreamField</span><span class="token punctuation">[</span><span class="token punctuation">]</span> serialPersistentFields <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ObjectStreamField</span><span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
<span class="token keyword">public</span> <span class="token keyword">static</span> <span class="token keyword">final</span> <span class="token class-name">Comparator</span><span class="token generics"><span class="token punctuation">&lt;</span><span class="token class-name">String</span><span class="token punctuation">&gt;</span></span> <span class="token constant">CASE_INSENSITIVE_ORDER</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">CaseInsensitiveComparator</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>
<span class="token keyword">public</span> <span class="token class-name">String</span><span class="token punctuation">(</span><span class="token keyword">byte</span><span class="token punctuation">[</span><span class="token punctuation">]</span> byArray<span class="token punctuation">,</span> <span class="token keyword">int</span> n<span class="token punctuation">,</span> <span class="token keyword">int</span> n2<span class="token punctuation">,</span> <span class="token class-name">Charset</span> charset<span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token comment">/*460*/</span> <span class="token keyword">if</span> <span class="token punctuation">(</span>charset <span class="token operator">==</span> <span class="token keyword">null</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">throw</span> <span class="token keyword">new</span> <span class="token class-name">NullPointerException</span><span class="token punctuation">(</span><span class="token string">&quot;charset&quot;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token comment">/*462*/</span> <span class="token class-name">String</span><span class="token punctuation">.</span><span class="token function">checkBounds</span><span class="token punctuation">(</span>byArray<span class="token punctuation">,</span> n<span class="token punctuation">,</span> n2<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token comment">/*463*/</span> <span class="token keyword">this</span><span class="token punctuation">.</span>value <span class="token operator">=</span> <span class="token class-name">StringCoding</span><span class="token punctuation">.</span><span class="token function">decode</span><span class="token punctuation">(</span>charset<span class="token punctuation">,</span> byArray<span class="token punctuation">,</span> n<span class="token punctuation">,</span> n2<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="print-source-only" tabindex="-1"><a class="header-anchor" href="#print-source-only" aria-hidden="true">#</a> Print source only</h3>`,7),j=n("By default, the decompile result will have the "),_=s("code",null,"ClassLoader",-1),L=n(" information. With the "),x=s("code",null,"--source-only",-1),C=n(" option, you can print only the source code. Conveniently used with the "),S=n("mc"),E=n("/"),I=n("retransform"),A=n(" commands."),D=o(`<div class="language-java ext-java line-numbers-mode"><pre class="language-java"><code>$ jad <span class="token operator">--</span>source<span class="token operator">-</span>only <span class="token class-name"><span class="token namespace">demo<span class="token punctuation">.</span></span>MathGame</span>
<span class="token comment">/*
* Decompiled with CFR 0_132.
*/</span>
<span class="token keyword">package</span> <span class="token namespace">demo</span><span class="token punctuation">;</span>
<span class="token keyword">import</span> <span class="token import"><span class="token namespace">java<span class="token punctuation">.</span>io<span class="token punctuation">.</span></span><span class="token class-name">PrintStream</span></span><span class="token punctuation">;</span>
<span class="token keyword">import</span> <span class="token import"><span class="token namespace">java<span class="token punctuation">.</span>util<span class="token punctuation">.</span></span><span class="token class-name">ArrayList</span></span><span class="token punctuation">;</span>
<span class="token keyword">import</span> <span class="token import"><span class="token namespace">java<span class="token punctuation">.</span>util<span class="token punctuation">.</span></span><span class="token class-name">Iterator</span></span><span class="token punctuation">;</span>
<span class="token keyword">import</span> <span class="token import"><span class="token namespace">java<span class="token punctuation">.</span>util<span class="token punctuation">.</span></span><span class="token class-name">List</span></span><span class="token punctuation">;</span>
<span class="token keyword">import</span> <span class="token import"><span class="token namespace">java<span class="token punctuation">.</span>util<span class="token punctuation">.</span></span><span class="token class-name">Random</span></span><span class="token punctuation">;</span>
<span class="token keyword">import</span> <span class="token import"><span class="token namespace">java<span class="token punctuation">.</span>util<span class="token punctuation">.</span>concurrent<span class="token punctuation">.</span></span><span class="token class-name">TimeUnit</span></span><span class="token punctuation">;</span>
<span class="token keyword">public</span> <span class="token keyword">class</span> <span class="token class-name">MathGame</span> <span class="token punctuation">{</span>
<span class="token keyword">private</span> <span class="token keyword">static</span> <span class="token class-name">Random</span> random <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Random</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">public</span> <span class="token keyword">int</span> illegalArgumentCount <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span>
<span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="decompile-the-specified-method" tabindex="-1"><a class="header-anchor" href="#decompile-the-specified-method" aria-hidden="true">#</a> Decompile the specified method</h3><div class="language-java ext-java line-numbers-mode"><pre class="language-java"><code>$ jad <span class="token class-name"><span class="token namespace">demo<span class="token punctuation">.</span></span>MathGame</span> main
<span class="token class-name">ClassLoader</span><span class="token operator">:</span>
<span class="token operator">+</span><span class="token operator">-</span><span class="token class-name"><span class="token namespace">sun<span class="token punctuation">.</span>misc<span class="token punctuation">.</span></span>Launcher</span>$<span class="token class-name">AppClassLoader</span><span class="token annotation punctuation">@232204a1</span>
<span class="token operator">+</span><span class="token operator">-</span><span class="token class-name"><span class="token namespace">sun<span class="token punctuation">.</span>misc<span class="token punctuation">.</span></span>Launcher</span>$<span class="token class-name">ExtClassLoader</span><span class="token annotation punctuation">@7f31245a</span>
<span class="token class-name">Location</span><span class="token operator">:</span>
<span class="token operator">/</span><span class="token keyword">private</span><span class="token operator">/</span>tmp<span class="token operator">/</span>math<span class="token operator">-</span>game<span class="token punctuation">.</span>jar
<span class="token keyword">public</span> <span class="token keyword">static</span> <span class="token keyword">void</span> <span class="token function">main</span><span class="token punctuation">(</span><span class="token class-name">String</span><span class="token punctuation">[</span><span class="token punctuation">]</span> args<span class="token punctuation">)</span> <span class="token keyword">throws</span> <span class="token class-name">InterruptedException</span> <span class="token punctuation">{</span>
<span class="token class-name">MathGame</span> game <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">MathGame</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">while</span> <span class="token punctuation">(</span><span class="token boolean">true</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token comment">/*16*/</span> game<span class="token punctuation">.</span><span class="token function">run</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token comment">/*17*/</span> <span class="token class-name">TimeUnit</span><span class="token punctuation">.</span><span class="token constant">SECONDS</span><span class="token punctuation">.</span><span class="token function">sleep</span><span class="token punctuation">(</span><span class="token number">1L</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="do-not-print-line-numbers" tabindex="-1"><a class="header-anchor" href="#do-not-print-line-numbers" aria-hidden="true">#</a> Do not print line numbers</h3><ul><li><code>--lineNumber</code>: Output source code contins line numbers, default value true</li></ul><div class="language-java ext-java line-numbers-mode"><pre class="language-java"><code>$ jad <span class="token class-name"><span class="token namespace">demo<span class="token punctuation">.</span></span>MathGame</span> main <span class="token operator">--</span>lineNumber <span class="token boolean">false</span>
<span class="token class-name">ClassLoader</span><span class="token operator">:</span>
<span class="token operator">+</span><span class="token operator">-</span><span class="token class-name"><span class="token namespace">sun<span class="token punctuation">.</span>misc<span class="token punctuation">.</span></span>Launcher</span>$<span class="token class-name">AppClassLoader</span><span class="token annotation punctuation">@232204a1</span>
<span class="token operator">+</span><span class="token operator">-</span><span class="token class-name"><span class="token namespace">sun<span class="token punctuation">.</span>misc<span class="token punctuation">.</span></span>Launcher</span>$<span class="token class-name">ExtClassLoader</span><span class="token annotation punctuation">@7f31245a</span>
<span class="token class-name">Location</span><span class="token operator">:</span>
<span class="token operator">/</span><span class="token keyword">private</span><span class="token operator">/</span>tmp<span class="token operator">/</span>math<span class="token operator">-</span>game<span class="token punctuation">.</span>jar
<span class="token keyword">public</span> <span class="token keyword">static</span> <span class="token keyword">void</span> <span class="token function">main</span><span class="token punctuation">(</span><span class="token class-name">String</span><span class="token punctuation">[</span><span class="token punctuation">]</span> args<span class="token punctuation">)</span> <span class="token keyword">throws</span> <span class="token class-name">InterruptedException</span> <span class="token punctuation">{</span>
<span class="token class-name">MathGame</span> game <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">MathGame</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">while</span> <span class="token punctuation">(</span><span class="token boolean">true</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
game<span class="token punctuation">.</span><span class="token function">run</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token class-name">TimeUnit</span><span class="token punctuation">.</span><span class="token constant">SECONDS</span><span class="token punctuation">.</span><span class="token function">sleep</span><span class="token punctuation">(</span><span class="token number">1L</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="decompile-with-specified-classloader" tabindex="-1"><a class="header-anchor" href="#decompile-with-specified-classloader" aria-hidden="true">#</a> Decompile with specified classLoader</h3><div class="custom-container tip"><p class="custom-container-title">TIP</p><p>If the target class is loaded by multiple classloaders, <code>jad</code> outputs the <code>hashcode</code> of the corresponding classloaders, then you can re-run <code>jad</code> and specify <code>-c &lt;hashcode&gt;</code> to decompile the target class from the specified classloader.</p></div><div class="language-java ext-java line-numbers-mode"><pre class="language-java"><code>$ jad <span class="token class-name"><span class="token namespace">org<span class="token punctuation">.</span>apache<span class="token punctuation">.</span>log4j<span class="token punctuation">.</span></span>Logger</span>
<span class="token class-name">Found</span> more than one <span class="token keyword">class</span> <span class="token keyword">for</span><span class="token operator">:</span> <span class="token class-name"><span class="token namespace">org<span class="token punctuation">.</span>apache<span class="token punctuation">.</span>log4j<span class="token punctuation">.</span></span>Logger</span><span class="token punctuation">,</span> <span class="token class-name">Please</span> use jad <span class="token operator">-</span>c hashcode <span class="token class-name"><span class="token namespace">org<span class="token punctuation">.</span>apache<span class="token punctuation">.</span>log4j<span class="token punctuation">.</span></span>Logger</span>
<span class="token constant">HASHCODE</span> <span class="token constant">CLASSLOADER</span>
<span class="token number">69d</span>caba4 <span class="token operator">+</span><span class="token operator">-</span>monitor&#39;s <span class="token class-name">ModuleClassLoader</span>
<span class="token number">6e51</span>ad67 <span class="token operator">+</span><span class="token operator">-</span><span class="token class-name"><span class="token namespace">java<span class="token punctuation">.</span>net<span class="token punctuation">.</span></span>URLClassLoader</span><span class="token annotation punctuation">@6e51ad67</span>
<span class="token operator">+</span><span class="token operator">-</span><span class="token class-name"><span class="token namespace">sun<span class="token punctuation">.</span>misc<span class="token punctuation">.</span></span>Launcher</span>$<span class="token class-name">AppClassLoader</span><span class="token annotation punctuation">@6951a712</span>
<span class="token operator">+</span><span class="token operator">-</span><span class="token class-name"><span class="token namespace">sun<span class="token punctuation">.</span>misc<span class="token punctuation">.</span></span>Launcher</span>$<span class="token class-name">ExtClassLoader</span><span class="token annotation punctuation">@6fafc4c2</span>
<span class="token number">2</span>bdd9114 <span class="token operator">+</span><span class="token operator">-</span>pandora<span class="token operator">-</span>qos<span class="token operator">-</span>service&#39;s <span class="token class-name">ModuleClassLoader</span>
<span class="token number">4</span>c0df5f8 <span class="token operator">+</span><span class="token operator">-</span>pandora<span class="token operator">-</span>framework&#39;s <span class="token class-name">ModuleClassLoader</span>
<span class="token class-name">Affect</span><span class="token punctuation">(</span>row<span class="token operator">-</span>cnt<span class="token operator">:</span><span class="token number">0</span><span class="token punctuation">)</span> cost in <span class="token number">38</span> ms<span class="token punctuation">.</span>
$ jad <span class="token class-name"><span class="token namespace">org<span class="token punctuation">.</span>apache<span class="token punctuation">.</span>log4j<span class="token punctuation">.</span></span>Logger</span> <span class="token operator">-</span>c <span class="token number">69d</span>caba4
<span class="token class-name">ClassLoader</span><span class="token operator">:</span>
<span class="token operator">+</span><span class="token operator">-</span>monitor&#39;s <span class="token class-name">ModuleClassLoader</span>
<span class="token class-name">Location</span><span class="token operator">:</span>
<span class="token operator">/</span><span class="token class-name">Users</span><span class="token operator">/</span>admin<span class="token operator">/</span>app<span class="token operator">/</span>log4j<span class="token operator">-</span><span class="token number">1.2</span><span class="token number">.14</span><span class="token punctuation">.</span>jar
<span class="token keyword">package</span> <span class="token namespace">org<span class="token punctuation">.</span>apache<span class="token punctuation">.</span>log4j</span><span class="token punctuation">;</span>
<span class="token keyword">import</span> <span class="token import"><span class="token namespace">org<span class="token punctuation">.</span>apache<span class="token punctuation">.</span>log4j<span class="token punctuation">.</span>spi<span class="token punctuation">.</span></span><span class="token operator">*</span></span><span class="token punctuation">;</span>
<span class="token keyword">public</span> <span class="token keyword">class</span> <span class="token class-name">Logger</span> <span class="token keyword">extends</span> <span class="token class-name">Category</span>
<span class="token punctuation">{</span>
<span class="token keyword">private</span> <span class="token keyword">static</span> <span class="token keyword">final</span> <span class="token class-name">String</span> <span class="token constant">FQCN</span><span class="token punctuation">;</span>
<span class="token keyword">protected</span> <span class="token class-name">Logger</span><span class="token punctuation">(</span><span class="token class-name">String</span> name<span class="token punctuation">)</span>
<span class="token punctuation">{</span>
<span class="token keyword">super</span><span class="token punctuation">(</span>name<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>
<span class="token class-name">Affect</span><span class="token punctuation">(</span>row<span class="token operator">-</span>cnt<span class="token operator">:</span><span class="token number">1</span><span class="token punctuation">)</span> cost in <span class="token number">190</span> ms<span class="token punctuation">.</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>For classloader with only one instance, it can be specified by <code>--classLoaderClass</code> using class name, which is more convenient to use.</p><p>The value of <code>--classloaderclass</code> is the class name of classloader. It can only work when it matches a unique classloader instance. The purpose is to facilitate the input of general commands. However, <code>-c &lt;hashcode&gt;</code> is dynamic.</p><h3 id="decompile-with-specified-directory-for-dumpping-class" tabindex="-1"><a class="header-anchor" href="#decompile-with-specified-directory-for-dumpping-class" aria-hidden="true">#</a> Decompile with specified directory for dumpping class</h3><p>Decompile class with <code>jad</code> need to dump corresponding classes into files. The default directory for dumpping classes is the directory of log file specified in logback.xml, we can use <code>-d/--directory</code> to specify the directory for dummping class.</p><div class="language-java ext-java line-numbers-mode"><pre class="language-java"><code>$ jad <span class="token class-name"><span class="token namespace">demo<span class="token punctuation">.</span></span>MathGame</span> <span class="token operator">-</span>d <span class="token operator">/</span>tmp<span class="token operator">/</span>jad<span class="token operator">/</span>dump
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div></div></div>`,14);function M(N,$){const c=p("ExternalLinkIcon"),e=p("RouterLink");return i(),u("div",null,[d,s("p",null,[s("a",k,[m,v,a(c)])]),h,s("p",null,[b,g,a(e,{to:"/en/doc/dump.html"},{default:t(()=>[y]),_:1}),w]),f,s("p",null,[j,_,L,x,C,a(e,{to:"/en/doc/mc.html"},{default:t(()=>[S]),_:1}),E,a(e,{to:"/en/doc/retransform.html"},{default:t(()=>[I]),_:1}),A]),D])}const R=l(r,[["render",M],["__file","jad.html.vue"]]);export{R as default};