A Decompiler for Java has the capability to convert a .class file into Java source code. Although it may fail in giving the exact java source code, from which the .class file was generated, the majority of the code will be the same. A decompiler will be helpful in situations where you have lost the source code.
1. JD ProjectJD Project can be used to decompile Java 5 bytecode or later versions. The reconstructed code can be accessed using the JD-GUI. It has a JD-Eclipse plugin which is to integrate JD Project with Eclipse and run it on Eclipse platform. During the process of debugging, it allows you to display all the Java sources. A plugin for IntelliJ is also available which is called JD-IntelliJ.
DJ Java Decompiler is a disassembler and decompiler for the latest Windows environments like Windows XP, Windows 2003, Windows Vista, Windows 7, Windows 8, 8.1 and 10. It can decompile complex Java applets and binaries, to produce accurate source code.
4. JBVDJBVD or Java Bytecode Viewer & Decompiler is a powerful decompiler that uses javassist open source library for making the conversions of the .class file into Java source file. It is available for devices that run on Windows platform. The program needs Java to be installed on your device to work.
AndroChef is a suitable Java decompiler to view and analyze bytecode. You can convert complex Java .class files and applets into Java source code. AndroChef is available on Windows operating systems only. Even obfuscated Java 6, Java 7 and Java 8 .class and .jar files can be smoothly decompiled.
6. ProcyonProcyon decompiler is a good option for converting the java files into .class files as it can handle language enhancements from Java 5 and beyond that most other decompilers don't. It can handle enum declarations, local classes, and annotations with ease. If you don’t want to use the command line, then you can get a GUI front end and for Procyon. Procyon is under development but still it is new and supports the latest Java files.
7. FernflowerFernflower is an analytical decompiler for Java. It is still under development and has become open sourced. It renames all the obfuscated symbols and puts them in a JAR file at the end.
8. CFRCFR is written in Java 6 but has capabilities to decompile latest features of Java 8 lambdas and Java 7 String switches. To decompile an entire jar, you can simply provide the jar path and get the work done.
VerdictThe decompiler options are plenty, and you can choose according to your needs. If you are looking for a decompiler with proper GUI and one click decompilation, opt for the traditional decompiler choices. The new ones under development, however, offer a lot of new features for decompilation to decompile obfuscated codes and the latest Java codes. They are also open for development.
Many of these Java decompilers are also Viewers so that even without having Java in your system, these work as standalone programs which enable you to work with Java code even without having Java installed in the system.