`jad` helps to *de-compile* the byte code in JVM to the source code to assist you to better understand the logic behind.
`jad` helps to de-compile the byte code running in JVM to the source code to assist you to understand the logic behind better.
F.Y.I
* the de-compiled code will be grammatically highlighted for readability in Arthas console;
* there might be some trivial grammar errors but it won't affect the logic understanding.
* The de-compiled code is syntax highlighted for better readability in Arthas console.
* It is possible that there's grammar error in the de-compiled code, but it should not affect your interpretation.
### Options
|Name|Specification|
|---:|:---|
|*class-pattern*|pattern for the class name|
|[c:]|hashcode of the class loader that loaded the class|
|[E]|turn on regex matching while the default is wildcard matching|
|`[c:]`|hashcode of the class loader that loads the class|
|`[E]`|turn on regex match while the default is wildcard match|
### Usage
When several class loaders loaded the same class:
1. `jad` to get the hashcode of the class loader;
2. `jad -c <hashcode>` to get the de-compiled class loaded by the specified class loader.
> If the target class is loaded by multiple classloaders, `jad` outputs the `hashcode` of the corresponding classloaders, then you can re-run `jad` and specify `-c <hashcode>` to de-compile the target class from the specified classloader.