Tool
Fernflower
JetBrains' analytical decompiler that turns Java class files back into Java source; IntelliJ IDEA bundles it to show code when debugging or browsing class files. The standalone console decompiler takes class files, JARs, ZIPs or directories, can load library files with -e only as analysis context, and writes Java sources to an output directory. Options cover generic signatures, lambdas, inner classes, record and switch patterns, per-method time limits and renaming of ambiguous or obfuscated identifiers, optionally through a user-supplied renamer class.
Requirements and limitations
- No GitHub releases: the README says releases are published in the IntelliJ repository, whose java-decompiler-engine metadata listed 262.10968.63 as the latest release at review. The README describes Fernflower as part of IntelliJ Community, which takes patches as pull requests, and bugs go to JetBrains' YouTrack (subsystem Java. Decompiler. Engine).
- The reviewed master commit's Gradle build (wrapper 9.1.0) compiles for Java 21 and produces fernflower.jar, or a fernflower start script with ./gradlew installDist; the README documents the java -jar fernflower.jar command line.
- Inputs are user-supplied class, JAR or ZIP files; libraries passed with -e inform analysis of class and method relationships but are not decompiled. The README says most options are aimed at professional reverse engineers. Output is reconstructed Java, not the original source.
- Apache-2.0 with a JetBrains NOTICE. The README credits Stiver as the original author and JetBrains as maintainer since 2014, with some ForgeFlower patches merged; Vineflower is a separately maintained fork. No classes were decompiled.
About this entry
- Type
- Tool
- Category
- JVM bytecode tools
- Relationship
- Foundation tool
- Targets
- App
Sources reviewed
The description was reviewed against primary sources. This does not establish runtime testing, security auditing or verified compatibility.
Primary sources
- README.md GitHub · JetBrains/fernflower · Revision 924b60f
- README.md#L48-L92 GitHub · JetBrains/fernflower · Revision 924b60f
- build.gradle.kts GitHub · JetBrains/fernflower · Revision 924b60f
- LICENSE.txt GitHub · JetBrains/fernflower · Revision 924b60f
- NOTICE.txt GitHub · JetBrains/fernflower · Revision 924b60f
- https://www.jetbrains.com/intellij-repository/releases/com/jetbrains/intellij/java/java-decompiler-engine/maven-metadata.xml