Files
procyon/procyon-decompiler.pod

241 lines
4.7 KiB
Plaintext

=encoding utf8
=head1 NAME
procyon-decompiler - the Procyon Java decompiler
=head1 SYNOPSIS
procyon-decompiler I<main class> [I<options>] I<type names or class/jar files>
=head1 DESCRIPTION
procyon-decompiler is a standalone front-end for the Java decompiler included
in procyon-compilertools.
=head1 OPTIONS
=over
=item B<-b>, B<--bytecode-ast>
Output Bytecode AST instead of Java.
Default: false
=item B<-ci>, B<--collapse-imports>
Collapse multiple imports from the same package into a single wildcard import.
Default: false
=item B<--compiler-target>
Explicitly specify the language version to decompile for, e.g., 1.7, 1.8, 8, 9,
etc. [EXPERIMENTAL, INCOMPLETE]
=item B<-cp>, B<--constant-pool>
Includes the constant pool when displaying raw bytecode (unnecessary with
B<-v>).
Default: false
=item B<-dl>, B<--debug-line-numbers>
For debugging, show Java line numbers as inline comments (implies B<-ln>;
requires B<-o>).
Default: false
=item B<--disable-foreach>
Disable 'for each' loop transforms.
Default: false
=item B<-eml>, B<--eager-method-loading>
Enable eager loading of method bodies (may speed up decompilation of larger
archives).
Default: false
=item B<-ent>, B<--exclude-nested>
Exclude nested types when decompiling their enclosing types.
Default: false
=item B<-eta>, B<--explicit-type-arguments>
Always print type arguments to generic methods.
Default: false
=item B<-fsb>, B<--flatten-switch-blocks>
Drop the braces statements around switch sections when possible.
Default: false
=item B<-fq>, B<--force-qualified-references>
Force fully qualified type and member references in Java output.
Default: false
=item B<-?>, B<--help>
Display this usage information and exit.
=item B<-jar>, B<--jar-file>
[DEPRECATED] Decompile all classes in the specified jar file (disables B<-ent>
and B<-s>).
=item B<-lc>, B<--light>
Use a color scheme designed for consoles with light background colors.
Default: false
=item B<-lv>, B<--local-variables>
Includes the local variable tables when displaying raw bytecode (unnecessary
with B<-v>).
Default: false
=item B<-ll>, B<--log-level>
Set the level of log verbosity (0-3). Level 0 disables logging.
Default: 0
=item B<-mv>, B<--merge-variables>
Attempt to merge as many variables as possible. This may lead to fewer
declarations, but at the expense of inlining and useful naming. This feature
is experimental and may be removed or become the standard behavior in future
releases.
Default: false
=item B<-o>, B<--output-directory>
Write decompiled results to specified directory instead of the console.
=item B<-r>, B<--raw-bytecode>
Output Raw Bytecode instead of Java (to control the level of detail, see:
B<-cp>, B<-lv>, B<-ta>, B<-v>).
Default: false
=item B<-ec>, B<--retain-explicit-casts>
Do not remove redundant explicit casts.
Default: false
=item B<-ps>, B<--retain-pointless-switches>
Do not lift the contents of switches having only a default label.
Default: false
=item B<-ss>, B<--show-synthetic>
Show synthetic (compiler-generated) members.
Default: false
=item B<-sm>, B<--simplify-member-references>
Simplify type-qualified member references in Java output [EXPERIMENTAL].
Default: false
=item B<-sl>, B<--stretch-lines>
Stretch Java lines to match original line numbers (only in combination with
B<-o>) [EXPERIMENTAL].
Default: false
=item B<--text-block-line-min>
Specify the minimum number of line breaks before string literals are rendered
as text blocksDefault is 3; set to 0 to disable text blocks.
Default: 3
=item B<-ta>, B<--type-attributes>
Includes type attributes when displaying raw bytecode (unnecessary with B<-v>).
Default: false
=item B<--unicode>
Enable Unicode output (printable non-ASCII characters will not be escaped).
Default: false
=item B<-u>, B<--unoptimized>
Show unoptimized code (only in combination with B<-b>).
Default: false
=item B<-v>, B<--verbose>
Includes more detailed output depending on the output language (currently only
supported for raw bytecode).
Default: false
=item B<--version>
Display the decompiler version and exit.
Default: false
=item B<-ln>, B<--with-line-numbers>
Include line numbers in raw bytecode mode; supports Java mode with B<-o> only.
Default: false
=back
=head1 USAGE EXAMPLES
Show help/usage information and exit.
$ procyon-decompiler
$ procyon-decompiler -?
Decompile a single class to the console.
$ procyon-decompiler java.lang.String
$ procyon-decompiler java.util.Collections
Decompile a whole jar to a directory.
$ procyon-decompiler -jar myJar.jar -o out
=head1 LICENSE
Procyon is released under version 2.0 of the L<Apache
License|https://www.apache.org/licenses/LICENSE-2.0.txt>.
=head1 SEE ALSO
The website is located at
L<https://github.com/mstrobel/procyon/wiki/Java-Decompiler>.