Since the Java bytecode remains the same across all platforms, it speeds up the process of creating high-quality decompilers as developers don't have to spend much time on supporting different architectures and operating systems. Here are some of the most popular tools available to the general public:
- Krakatau: A set of three tools written in Python, allowing for the decompiling and disassembling of Java bytecode, as well as assembling. Don't forget to specify the path to the rt.jar file from your Java folder via the -path argument when using it.
- Procyon: Another powerful decompiler, this is able to process Java files, raw bytecode, and bytecode Abstract Syntax Tree (AST).
- FernFlower: A Java decompiler that's maintained as a plugin for IntelliJ IDEA. It has a command-line version as well.
- CFR: A JVM bytecode decompiler written in Java, that can process individual classes and entire JAR files as well.
- d4j: A Java decompiler built on top of the Procyon project...