As the author has forgotten to add a detailed usage listing

No, I haven't :) See readme.txt in your jar for the full documentation.

Answer from Stiver on Stack Overflow
🌐
GitHub
github.com › MinecraftForge › FernFlower
GitHub - MinecraftForge/FernFlower: Unofficial mirror of FernFlower Java decompiler, Subtree split of: https://github.com/JetBrains/intellij-community/tree/master/plugins/java-decompiler/engine
Unofficial mirror of FernFlower Java decompiler, Subtree split of: https://github.com/JetBrains/intellij-community/tree/master/plugins/java-decompiler/engine - MinecraftForge/FernFlower
Starred by 96 users
Forked by 21 users
Languages   Java
🌐
Minecraft
minecraft.net › en-us › article › fern
Taking Inventory: Fern
September 5, 2025 - Grass is just grass right? That thing you stomp on while running away from Creepers? Wrong! Minecraft has many, many different kinds of grass - there’s short grass, tall grass, seagrass, tall seagrass, dry grass, tall dry grass, kelp, bushes, dead bushes, firefly bushes, and - last but by no means least - our item of the month, the fern.
🌐
Reddit
reddit.com › r/java › new open source java decompiler
r/java on Reddit: New open source Java decompiler
April 29, 2022 -

Hello! Today I'm happy to announce the release of a project that me and my friends have been working on over the course of the last year, Quiltflower! Originally intended just for use with the QuiltMC toolchain with Minecraft, Quiltflower quickly expanded to be a general purpose java decompiler aiming to create code that is as accurate and clean as possible. If the name sounds familiar it's because Quiltflower is a fork of Fernflower, the (in)famous decompiler that was developed by Stiver, maintained by Jetbrains, and became the default decompiler in Intellij IDEA. Fernflower also quickly found its way into many other tools. After many frustrations with it myself with its decompiled code structuring and quality I decided to do something about it, and here we are! Over the past year, Quiltflower has added support for features such as modern string concatenation, a code formatter, sealed classes, pattern matching, switch expressions, try-with-resources, and more. Quiltflower also focuses on the code quality of the decompiled output, and takes readability very seriously. We'd greatly appreciate it if you'd give it a try, with our Intellij Plugin, as a standalone jar, or on our maven. While it has come a long way it's still a work in progress, and feedback can be reported on our issue tracker.

Here's a comparison of Fernflower and Quiltflower's output.

I'd also like to thank the MinecraftForge Team for creating ForgeFlower, the fork that QuiltFlower was based on, and Lee Benfield for creating CFR and it's truly incredible test suite.

🌐
Minecraft
feedback.minecraft.net › hc › en-us › community › posts › 360054799252-Fern-flower-
Fern flower – Minecraft Feedback
Very rare. It can only be generated, cannot be propagated or grown on grass with bone meal It has the ability to absorb the effect. In order to give an effet to a flower, you must throw an explosiv...
🌐
GitHub
github.com › MinecraftForge › ForgeFlower
GitHub - MinecraftForge/ForgeFlower: Forge's modifications to FernFlower. Fixing various bugs/inconsistencies. Main Repo: https://github.com/MinecraftForge/FernFlower
Forge's modifications to FernFlower. Fixing various bugs/inconsistencies. Main Repo: https://github.com/MinecraftForge/FernFlower
Starred by 108 users
Forked by 49 users
Top answer
1 of 7
41

There is the open source Java decompiler, Procyon.

I have not tested it against any obfuscated code, but I have seen it decompile many methods that JD-GUI failed to handle. Note that it's a work in progress, and I'm sure you will find plenty of code that it will fail to decompile.

2 of 7
19

Old and Lacking Entries

JAD Some time ago, everyone’s decompiler of choice was jad. Currently, the project is dead (in addition, it wasn’t open source), but still you see a lot of people referring to it.

Java DeObfuscator Also an older tool from fileoffset.com, but still works more or less. The interface is rather clunky to use for larger projects, but the tool is open source.

JODE JODE is a java package containing a decompiler and an optimizer for Java. This package is freely available under the GNU GPL. It hasn’t been updated for quite some time.

AndroChef Proprietary tool to decompile Android programs and Java files, available here. Not worth the money given the alternatives, just as DJ Decompiler.

Candle An open source decompiler by Brad Davis. I’m mentioning it for completeness, but is far away from being feature complete.


Modern Tools

JD-Gui Probably one of the most widely used tools for Java decompilation, as it is easy to use and provides a graphical user interface which allows to quickly open up and inspect a class file or JAR. You can find it over here.

FernFlower Very new and promising analytical Java decompiler (becoming an integral part of IntelliJ 14).

It’s a command line tool. This one is able to show the Unicode parameters with their full name.

Download from here. It’s a command line tool. This one is able to show the Unicode parameters with their full name.
Note that it's also already integrated by default in IntelliJ.

CFR

Free, and open source. This one aims to decompile modern Java features, including Java 12 switch expressions, Java 8 lambdas (pre and post Java beta 103 changes), Java 7 String switches etc., though is itself written in Java 6.

Also a command line tool. This one does an even better job and is slightly faster.

Procyon

Open source, and also aims to deal with Java 8 features (lambdas, :: operator). Needs Java 7 to run.

Krakatau Krakatau is interesting because it has been written in Python. It currently contains three tools: a decompiler and disassembler for Java class files and an assembler to create class files.

Does not yet support Java 8 features.

Soot

Soot is a framework for analyzing and transforming Java and Android applications, originally developed by the Sable Research Group of McGill University. It’s not very commonly used “just” as a decompiler, as it also defines an intermediate byte code language.

Recaf

A Java Bytecode editor and reverse engineering tool aimed at being intuitive to use. It can present bytecode through multiple decompilers (CFR, FernFlower, Procyon) or in a table layout to allow displaying class elements that are indecipherable in standard decompilers. Recaf uses context-sensitive menus to interact with classes, methods, and fields, allowing users to search for use cases, rename items, and edit definitions in a disassembled format.

It supports jars, wars, classes, and extracting classes from running Java processes.

It is written completely in Java and is fully open source.

Konloch’s Bytecode Viewer

An Advanced Lightweight Java Bytecode Viewer, GUI Java Decompiler, GUI Bytecode Editor, GUI Smali, GUI Baksmali, GUI APK Editor, GUI Dex Editor, GUI APK Decompiler, GUI DEX Decompiler, GUI Procyon Java Decompiler, GUI Krakatau, GUI CFR Java Decompiler, GUI FernFlower Java Decompiler, GUI DEX2Jar, GUI Jar2DEX, GUI Jar-Jar, Hex Viewer, Code Searcher, Debugger and more.

Written completely in Java, and it’s open source.

It uses FernFlower, Procyon and CFR for decompilation, makes this an awesome visual tool using state-of-art decompilers:

Enigma

A tool specifically geared for deobfuscation:

Originally used to deobfuscate Minecraft versions. Uses Procyon internally.

A more up to date fork can be found here

It’s fun to note that a lot of effort into decompilers and de-obfuscators for Java is the result of the modding scene around Minecraft, one of the most popular games implemented in Java.

Source: http://blog.macuyiko.com/post/2015/a-quick-look-at-java-decompilers.html

🌐
Minecraft Wiki
minecraft.wiki › w › Fern
Fern – Minecraft Wiki
Ferns are a non-solid plant block found only in certain biomes and have the same characteristics as grass.
🌐
Neoforged
maven.neoforged.net › releases › net › minecraftforge › fernflower
Index of /releases/net/minecraftforge/fernflower
Index of /releases/net/minecraftforge/fernflower · Parent Directory · 2.0-SNAPSHOT/ · 2.0.1/ · 2.0.2/ · 2.0.3/ · 2.0.4/ · 2.0.5/ · 2.0.6/ · 2.0.7/
Find elsewhere
🌐
Forge Forums
forums.minecraftforge.net › home › mod developer central › modder support › fernflower decompiler not working?
Fernflower decompiler not working? - Modder Support - Forge Forums
April 2, 2020 - I am using Fernflower to decompile SereneSeasons. I actually already successfully did this, like.. last week. But then I deleted the decompiled files because I thought I didn't need them anymore. Now I am trying to follow the instructions at Fernflower's github page, and it's not working anymore....
🌐
SpigotMC
spigotmc.org › threads › decompiling.372215
Decompiling | SpigotMC - High Performance Minecraft Software
Hello, I am currently looking to decompile a plugin and from browsing Spigot, I found out that IntelliJ has a built-in decompiler called FernFlower....
🌐
GitHub
github.com › MinecraftForge › FernFlower › issues › 1
How do you build the fernflower.jar? · Issue #1 · MinecraftForge/FernFlower
January 22, 2017 - You mention using the fernflower.jar, but I cannot seem to find it in this repo. I assume I have to build it, but again there are no instructions on how to do that. I am not a java developer so it ...
Published   Apr 27, 2017
🌐
Reddit
reddit.com › r/minecraftmod › fernflower decompiler not working?
r/MinecraftMod on Reddit: Fernflower decompiler not working?
November 29, 2018 - This is a subreddit for the discussion and creation of Minecraft mods, questions are also welcome. ... I am using Fernflower to decompile SereneSeasons. I actually already successfully did this, like..
🌐
GitHub
github.com › topics › fernflower
fernflower · GitHub Topics · GitHub
maven decompiler fernflower · Updated · Nov 23, 2024 · Java · Star 2 · A simple wrapper for the ForgeFlower java decompiler, made with Node.js · nodejs java minecraft wrapper forge decompiler npm-package fernflower forgeflower · Updated · Mar 25, 2018 ·
🌐
GitHub
github.com › MinecraftForge › FernFlowerLegacy
GitHub - MinecraftForge/FernFlowerLegacy: Legacy FernFlower with our changes. Currently working on redesiging how we do this repo to make updating easier.
1. About the decompiler Fernflower is the first actually working analytical decompiler for Java and probably for a high-level programming language in general. Naturally it is still under development, please send your bug reports and improvement ...
Starred by 27 users
Forked by 16 users
Languages   Java
🌐
GitHub
github.com › Vineflower › vineflower
GitHub - Vineflower/vineflower: Modern Java decompiler aiming to be as accurate as possible, with an emphasis on output quality. Fork of the Fernflower decompiler.
Vineflower is a fork of Jetbrains' Fernflower, MinecraftForge's ForgeFlower, FabricMC's fork of Fernflower, and a direct continuation of work on Quiltflower.
Starred by 1.8K users
Forked by 117 users
Languages   Java
🌐
GitHub
github.com › MinecraftForge › ForgeGradle › commit › bb1e035cb575de37d1d8491ddd4460ef6c815715
Log fernflower output to debug logger, and set max heap space to 2 gi… · MinecraftForge/ForgeGradle@bb1e035
February 12, 2014 - Minecraft mod development framework used by Forge and FML for the gradle build system - Log fernflower output to debug logger, and set max heap space to 2 gi… · MinecraftForge/ForgeGradle@bb1e035
Author   MinecraftForge
🌐
AnandTech
forums.anandtech.com › home › software › programming
Fernflower java decompiler | AnandTech Forums: Technology, Hardware, Software, and Deals
May 13, 2012 - Does anybody have the fernflower decompiler for decompiling java? My son is looking into making a minecraft client and what he found uses fernflower but I cant track the jar file down. Thanks.