There used to be a time where everyone's decompiler of choice was jad.
But jad is dead, and it was not Open Source anyway, so there must be something better, right?
Started in 2012, Procyon has quickly emerged as the best open source Java decompiler. Its source code is released under the Apache 2 license, making it easily reusable. It has GUI frontends: and SecureTeam Java Decompiler, bytecode-viewer and Luyten.
Lead by Procyon has a healthy community with issue reports being filed and processed every few weeks, pull requests from various contributors, and several releases per year.
- Fernflower is the second best, and its inclusion in IntelliJ speaks about its reliability. Also released under the Apache 2 license, it is unfortunately hold back by project policy problems: 1) No releases, meaning that users have to either compile it or use IntelliJ 2) No separate issue tracker, which means Fernflower issue reports get lost in the sea of IntelliJ issue reports.
- Krakatau, interestingly written in Python, and licensed under the GNU GPLv3 license, is kept active by its leader and its community is slowly growing. It does not fully support Java 8 yet.
- CFR is produced as a friendly competition within the same company as Procyon. A young project with frequent releases, it is not open source yet as the author wishes to polish the code before.
- Cake Decompiler/Candle Decompiler is a work in progress that stalled a few months ago. Even though it is backed by RedHat, there is a risk that it will be abandoned in favor of the more advanced challengers.
- Jdec is a great Open Source decompiler, but it is not perfect: There is no community, and there are bugs, none of which has got fixed since 2007.
- JODE has had no release since 2004.
- dcompiler has had no release since 2002.
- JReversePro shows signs of activity but has had no release since 2002.
- Dava seems to be a thesis project rather than a programming tool.
- javap only shows assembly-level code.
- Soot is not really a decompiler.
Out of CompetitionThose ones might be usable but they are not Open Source:
- Java Decompiler (JD) is not open source.
- DJ Java Decompiler is not open source.
- Cavaj is not open source.