JAVA decompiler collections

Procyon

open-source, see more
 Author: Mike Strobel
 Updated in 2015. Handles language enhancements from Java 5 and beyond, up to Java 8, including: Enum declarations Enum and String switch statements Local classes (both anonymous and named) Annotations Java 8 Lambdas and method references (i.e., the :: operator). Java 7 is required to run.

CFR

Free, no source-code available, see more
 Author: Lee Benfield
 Updated in 2015. CFR is able to decompile modern Java features — Java 8 lambdas (pre and post Java beta 103 changes), Java 7 String switches etc, but is written entirely in Java 6.

JD

Free for non-commercial use only, see more
 Author: Emmanuel Dupuy
 Updated in 2014. Has its own visual interface and plugins to Eclipse and IntelliJ . Written in C++, so very fast. Supports Java 5.

Fernflower

open-source, see more
 Author: Egor Ushakov
 Updated in 2015. Very promising analytical Java decompiler, now becomes an integral part of IntelliJ 14. (see more)
 Supports Java up to version 6 (Annotations, generics, enums)

Krakatau

open-source, see more
 Author: Robert Grosse
 written in Python, includes a robust verifier. It focuses on translating arbitrary byte code into valid Java code, as opposed to reconstructing the original code.

Candle

open-source, see more
 Author: Brad Davis
 developer of JBoss Cake, is an early but promising work in progress.

JAD

given here only for historical reason. Free, no source-code available, jad download mirror
 Author: Pavel Kouznetsov
 Probably, this is the most popular Java decompiler, but primarily of this age only. Written in C++, so very fast. Outdated, unsupported and does not decompile correctly Java 5 and later.

Jadx

Android application package (APK) is the package file format used to distribute and install application software onto Google’s Android operating system.
 This site uses perfect open-source APK and DEX decompiler called Jadx, see more
 Jadx decompiles .class and .jar files, but also it produces Java source code from Android Dex and Apk files.

ClassyShark

open-source, see more
 Author: Boris Farber
 ClassyShark is a standalone tool for Android developers. It can reliably browse any Android executable and show important info such as class interfaces and members, dex counts and dependencies.
 The browser supports multiple formats including libraries (.dex, .aar, .so), executables (.apk, .jar, .class) and AndroidManifest (.xml).

Please, use it only for legitimate purposes.

References

Decompilers online


Originally published at www.figotan.org on November 24, 2015.