A quick guide to best java decompilers for the java developers offline usage and best online java decompilers.
in this tutorial, We'll learn what are the best java decompilers for the java developers and what are java online decompilers available for free usage.
For some of the developers who do not have access to download it to the development machines, they might need the help of online decompilers.
2. What is Decompiler?
When the java class is compiled and then the JVM generates the .class file for that class. That means java source code is converted into the .class file which is in the form of the byte stream.
Now the generated class file is not in a readable format. So, how to read the class file in java?
Java Decompiler converts the byte stream data into the readable source file.
Many times, you might be in the need to see the third party jars source code to debug issues.
If you do not have the right decompiler tool then you can not view the .class file in java.
By using Decompiler, you can view the source code for java built in api classes for String, ArrayList, HashSet and HashMap classes.
All java API classes are present in the rt.jar file. This file is generated by the JDK as soon as you install java on your machine.
Every java developer must have one java decompiler to become a better programmer by seeing the .class files internal code.
3. Java Decompiler Tools
If you are using only eclipse then only you need the decompiler. Because decompiler is not integrated with the eclipse. You need to add the jd decompiler to it.
But if you IntelliJ idea user, by default it comes with the inbuilt decompiler which works flawlessly.
Let us see the offline java decompiler tools and choose the best one for you.
3.1 JDProject Java Decompiler
JDProject means java decompiler project. This works on windows, unix and mac os.
JDProject is the most used java decompiler in the world by java developers because it has the support for the Eclipse IDE and offline tool as well.
This one is easy to use and supports java 1.1 onwards.
And also JD has syntax highlighting and also open multiple jars at the same time from the offline tool.
This can easily reconstruct the java source file from the any version java .class file.
Works with enums, collections, java 8 stream apis as well.
Download from here.
Procyon is a java decompiler developed by Mike Strobel.
Procyon decompiler handles java language enhancements from JDK 1.5 and beyond that most other decompilers don't. Procyon really works very well with enum declarations, annotations, java 8 lambdas and method references.
Compare to this, I suggest to use the JD project decompiler because Procyon is still a new one and still development is in progress.
3.3 Neshkov - DJ Java compiler
This is also another free decompiler tool.
DJ decompiler is windows based and support all windows operating systems till windows 10.
This is a standalone tool like the above decompilers with GUI.
The main advantage of this tool is, JDK is not needed to be installed on the machine to run this tool.
The program enables users to save, print, edit and compile the generated java code.
And also you can edit and run the code instantly using the given option as below.
3.4 Cavaj Java Decompiler
This is another java decompiler and is free software.
Cavaj Java Decompiler is a simple GUI for only for windows developers and does not provide the java
This is not available for the MAC and Unix os. So, this is not recommened for the experienced developers.
3.5 AndroChef Java Decompiler
Andochef is a windows based GUI and works with apk., dex, jar and java class-files. It's simple and easy.
AndroChef Java Decompiler is Windows XP, Windows 2003, Windows Vista, Windows 7, Windows 8 , 8.1 and Windows 10 decompiler for Java that reconstructs the original source code from the compiled binary CLASS files.
AndroChef Java Decompiler is able to decompile the most complex Java 6 applets and binaries, producing accurate source code from it.
This decompiler works for android apk files also.
For large APK files (over 10 MB) - decompilation may take several minutes to complete or even longer, depending on the configuration of your computer and the size of the file.
To get the full features, you need to buy the licenced copy of software.
3.6 JBVD - Java Bytecode Viewer & Decompiler
JBVD provides the support for the cross platforms such as Windows, Mac and Unix environments.
A very powerful java bytecode viewer and decompiler which makes use of the javassist open source library.
This is not getting the recent updates since 2017.
Fernflower is the first actually working analytical decompiler for Java and probably for a high-level programming language in general.
This is still under the development.
Better to skip these type of decompiler till its full development and tested. But you can try and use it if you like. If you intellij user, then you may like this.
This is for intellij idea and used as plugin,
3.8 CFR - another java decompiler
Last but not unused one. CFT is completely written in java 6 and provides decompilation for the java modern syntax.
If you are working on java 8 then this is very good for you to get the accurate the results.
This can work with the latest java version java 9, 12 and 14 also.
The recent update is in the fen 2021 and can expect the further updates in future.
By using this command line interface, we can get the fast and efficient source codes from this.
4. Java Online Decompilers
Some of the developers do not like decompiling on the local computer rather they prefer doing it online.
Or if you want to decomiple only one class file then you may need to go the online decompilers.
But it is strictly recommended not to use online decomiples for your production code base.
if that class has the sensitive information, it may triggers the entry point to the hackers.
Some of the online decompilers list.
This online decompier expects you to upload the .class file and select the decompiler that you want to use the from the top tools.
A CLASS file is a compiled .JAVA file created by the Java compiler. It contains bytecode, which is binary program code that is executable when run by a Java Virtual Machine (JVM). CLASS files are commonly bundled into .JAR files, which are included in the $CLASSPATH environment variable for execution.
decompiler.com online decompiler works for all of these extentions - EXE or DLL, JAR or CLASS, APK, XAPK or DEX,PYC or PYO, LUAC or LUB, SMX or AMXX.
This is kind of all in one decompiler but it is online.
You can decompiler java classes, F#, C#, android, python and lua code as well.
As of now, we have seen many java decompiler for offline and online usage.
if you are intelliJ user then you do not need any of these because it is intergrated with inbuilt best decompiler.
If you eclipse user, Please use JDProject one because this provides the plugin for eclipse.
If you are learning java and do not use any IDE then you can use the online decompiler for your choice.
Note: Do not use the online decompier for the production classes.