decompiler is a utility that helps to analyze and decompile the Java byte codes and produce source code from them. Decompile is the exact reverse process of the compile process. The process is beneficial when no source is available, and we can debug the using source code after decompiling the byte code and analyze its behavior.
Since development gets done using
Integrated Development Environment (IDE) and hence it’s beneficial to have a
decompiler in IDE itself. Search for the string decompiler in the marketplace of freely available IDE’s say Eclipse or Intellij.
For IDE that is
Intellij, we can download the plugin from the marketplace. Once the plugin gets in a proper place, we can locate the decompiler in the left sidebar below the maven plugin. Below is the attached screenshot for better understanding.
The decompiler code gets automatically converted to the source code, and we can locate it in the target folder. Below is the screenshot attached for understanding.
Other available tools to convert byte code to source codes are as below.
Java Decompiler is an online web service along with an actual application. We can decompile any Java 5 and higher version code using the utility. The service provides various options under which we can select the decompiler of our choice from the list. Under this, we have
JD-GUI that is a graphical utility and helps to convert the
.class files to get Java source code from the same.
JD-Eclipse is an eclipse IDE plugin that allows the decompilation of a class file in IDE itself.
JD-Core is another open-source utility that recreates source code from the byte code.
Another utility is
Procyon that primarily focuses on code generation and analysis. It is an open-source utility and is given by
Apache Licence 2. It consists of libraries like core framework, expressions framework, reflection framework, compiler toolset, and a Decompiler. It has its utility which facilitates the process of code generation from the byte code.
For more details, visit the GitHub link -
Krakatau is one more open-source tool for assembling and disassembling the java byte code. The tool allows users to transform binary code into text format. It even allows users to reconvert the source code to the byte code again. The utility is purely a
Python script, which runs when we execute the command.
More details are over the GitHub link -
CFR is another Java decompiler that allows decompiling the byte code of Java up to version 14. The decompiler code is purely written in Java 6 and is easy to execute. We can run it via a command that runs the jar and takes a parameter here, the class name that to decompile.
Further details are over the link-
Fernflower is yet another such utility available that is still under development. The utility is given by
Apache Licence 2. Execution command is as simple as running a jar along with parameters.
For more details visit-
DJ Java Decompiler is one of the utility tools that are compatible with windows and its subsequent versions. The utility is powerful enough to correctly decompile the Java applet code from the given byte code. It is a standalone Windows application with a well-defined graphical user interface.
For more details visit-