1JRD(1)                      java-runtime-decompiler                     JRD(1)
2
3
4

NAME

6       JRD - Java Runtime Decompiler
7

SYNOPSIS

9       (./start.sh|start.bat) [-verbose] # launches GUI
10
11       (./start.sh|start.bat) [-verbose] (-help|-h|-overwrite|-init)
12
13       (./start.sh|start.bat)         [-verbose]        (-listclasses|-listde‐
14       tails|-bytes|-base64bytes|-compile|-decompile|-api|-listjvms|-listplug‐
15       ins) [-saveas [-savelike]]
16

OPTIONS

18   Standard options
19       -help, -h
20               Print this help text.
21
22       -verbose
23               All  exceptions  and  some debugging strings will be printed to
24              standard error.
25
26       -version
27               Print version project name, version and build timestamp.
28
29       -listjvms
30               List all local Java processes and their PIDs.
31
32       -listplugins
33               List all currently configured decompiler plugins and their sta‐
34              tuses.
35
36       -listclasses <PUC> [<CLASS REGEX>...]
37               List  all  loaded  classes  of  a process, optionally filtering
38              them.
39
40               Only '-savelike exact' or '-savelike default'  are  allowed  as
41              saving modifiers.
42
43       -listdetails <PUC> [<CLASS REGEX>...]
44               Similar  to  -listclasses,  only more details are printed about
45              classes.
46
47       -base64bytes <PUC> <CLASS REGEX>...
48               Print Base64 encoded binary form  of  requested  classes  of  a
49              process.
50
51       -bytes <PUC> <CLASS REGEX>...
52               Print binary form of requested classes of a process
53
54       -compile [-p <PLUGIN>] [-cp <PUC>] [-r] <PATH>...
55               Compile  local  files  against  runtime classpath, specified by
56              -cp.
57
58               Use -p to utilize some plugins' (like jasm or  jcoder)  bundled
59              compilers.
60
61               Use -r for recursive search if <PATH> is a directory.
62
63               If  the  argument  of '-saveas' is a valid PID or URL, the com‐
64              piled code will be attempted to be injected into that process.
65
66               If multiple PATHs were specified, but no '-saveas', the process
67              fails.
68
69       -decompile <PUC> <PLUGIN> <CLASS REGEX>...
70               Decompile and print classes of a process with the specified de‐
71              compiler plugin.
72
73               Javap can be passed options by appending them  without  spaces:
74              'javap-v-public ...' executes as 'javap -v -public ...'
75
76       -overwrite <PUC> <FQN> [<CLASS FILE>]
77               Overwrite class of a process with new bytecode. If <CLASS FILE>
78              is not set, standard input is used.
79
80       -init <PUC> <FQN>
81               Try to initialize a class in a running JVM (has no effect in FS
82              VMs). Because class loading is lazy, the class you need might be
83              missing, eg. java.lang.Override.
84
85       -api <PUC>
86               Will print out which can be used to  insert  fields/methods  to
87              running vm
88
89   Saving modifiers
90       -saveas <PATH>
91               All outputs will be written to PATH instead of to standard out‐
92              put.
93
94       -savelike <SAVE METHOD>
95               Specify how saving will behave.
96

NOTES

98       All options can be with either one or two leading slashes ('-').
99
100
101       When using <CLASS REGEX>, escape dollar signs '$' of inner  classes  to
102              '\$'; otherwise they mean the end-of-line.
103
104
105       <FQN>  is  the fully qualified name of a class as per the Java Language
106              Specification ?6.7.
107
108
109       <PUC>, short for PidUrlClasspath, can be one of:
110
111              • local process PID
112
113              • remote process URL, in the format of 'hostname:port'
114
115              • classpath of JAR on the  filesystem  (classpath  separator  is
116              ':')
117
118
119       <SAVE METHOD> can be one of:
120
121              •   'dir'   -  Result  will  be  saved  as  '<PATH>/fully/quali‐
122              fied/name.class'. Default for .class binaries.
123
124              •  'fqn'  -  Result  will  be  saved   as   '<PATH>/fully.quali‐
125              fied.name.java'. Default for .java sources.
126
127              •  'exact'  -  Result will be saved exactly to '<PATH>'. Default
128              for everything else.
129
130              • 'default' - Saving uses the defaults mentioned above.
131
132
133
134
135                             2022-02-05T20:30:48Z                       JRD(1)
Impressum