Fernflower is a decompiler that converts Java bytecode back into readable Java source code.
The tool addresses the problem of understanding compiled Java code by reversing the compilation process. It parses Java class files and reconstructs the original source structure, handling the transformations that occur during compilation such as variable renaming, control flow optimization, and bytecode-specific constructs. The decompiler produces output that closely resembles hand-written Java code rather than a literal translation of bytecode instructions.
Fernflower suits developers who need to inspect third-party libraries, analyze legacy code without source access, or understand how the Java compiler transforms code. It is particularly valuable in integrated development environments where decompilation is a core feature for navigation and debugging. The tool is production-tested through its use in IntelliJ IDEA, where it handles real-world Java projects at scale.
Development activity on the project is steady and focused. The maintainers merge pull requests regularly and respond to issues, indicating active engagement with the user community. Work concentrates on improving decompilation accuracy and handling edge cases in Java language features rather than pursuing major architectural changes. The codebase receives updates that address specific decompilation problems and compatibility with evolving Java versions.