Today I’ll give you an ultimate list of the best Java decompilers. These tools will allow you to decompile Java class files (.class) as well as complete Java projects (.jar) to view the actual source code behind them. Decompiling a .class and .jar files is helpful if you want to understand how the Java program works without having access to the original source code.
The below list contains free, paid, open-source, and online Java decompilers.
Let’s have a look at each of these Java decompilers and then select the best Java decompiler that can fulfill your specific requirements.
Best Java Decompiler Online for .class & .jar Files
This website offers different Java Decompilers as an online service. It has an intuitive user interface that enables you to select a decompiler from a list of the most popular Java decompilers. After that, you just have to upload your .class or .jar binary file and this tool will extract the Java source code from it.
Here’s a list of available Java decompilers in this online tool.
- Procyon – fast decompiler for modern Java
- CFR – very good and well-supported decompiler for modern Java
- JDCore – very fast
- JADX – fast and with Android support
- JAD – very fast but outdated
Java Decompiler by Appscms
This online tool provides a Java decompiler through which you can decompile your class files with one click.
You just have to upload your java class file either using the “Upload file” button given on the UI or through drag and drop. Now the tool will automatically start decompiling your .class files and the extracted Java source code will be ready for download in a few minutes.
I have tested it personally, and the decompilation quality is satisfactory.
- Secure decompilation: They only store your files temporarily and delete them after the decompilation process is completed.
- Works on all platforms: including Mac, Linux, Ubuntu, Windows 7, 8, and 10
- No learning curve: Just upload your files and start decompiling
- All versions of Java are supported
- No installation required: They use cloud technology for decompilation
Online Java Decompiler by JDec
It is one of the simplest Java decompilers online for reverse engineering Java software. You just need to upload your .class or .jar file and this tool will give you the Java source code which you can download on your device.
This tool will work perfectly on any modern web browser. Hence, you can use it on desktop, tablet, and Android/iOS mobile.
It is like an all-in-one kind of decompiler tool. Basically, it allows you to upload different types of files and the tool will intelligently select the best decompiler to use.
For example, you can upload the below-mentioned file types in this tool.
In our case, we will only upload the .jar or .class file. After that, the tool will automatically select the Java decompiler for processing the files.
- View the decompiled source code online without installing anything.
Java Decompiler Online by JavaInUse
This online tool decompiles the .class file into Java source code.
Basically, the .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.
Online Java class decompiler by Mobilefish
This service allows you to decompile Java class files and create a class file analysis report containing the following information:
- The class file content in hex values
- minor and major version
- constant pool count
- constant pool
- access flags
- this class
- super class
- interfaces count
- interfaces info
- fields count
- fields info
- methods count
- methods info
- attributes count
- attributes info
According to the developer, this decompiler is built using PHP and is based on the JSR 202: Java Class File Specification Update.
Note: This online decompiler is still a work in progress and the generated java code is NOT COMPLETE. Its development status is pre-alpha.
Free Java Decompiler Online Tool
Free and Open Source Java Decompilers
JD-GUI is a standalone Java Decompiler software with a graphical user interface. This utility displays Java sources from CLASS files. You can browse the reconstructed Java source code with the JD-GUI for instant access to methods and fields.
The source code of this decompiler is released under the GNU GPL v3 license which means that you can use it for free in personal and commercial projects.
JD-GUI uses the JD-Core Java library that contains the actual Java decompiler. JD-Core support Java 1.1.8 to Java 12.0, including Lambda expressions, method references and default methods.
Available Plugins for Different Platforms
If you want to use a Java decompiler on the Eclipse platform then you have the option to integrate JD-Eclipse plug-in. It also uses the same JD-Core library as its engine.
JD-IntelliJ is a Java decompiler for the IntelliJ IDEA. It is also based on the famous Java decompiler library JD-Core.
Procyon is a suite of Java metaprogramming tools, including a rich reflection API, a LINQ-inspired expression tree API for runtime code generation, and a Java decompiler.
- Java Decompiler (for Atom): This package allows you to open .class (Java) files and see a decompiled Version of this file.
CFR decompiler will decompile modern Java features – including much of Java 9, 12 & 14, but is written entirely in Java 6, so will work anywhere. It’ll even make a decent go of turning class files from other JVM languages back into java.
JBVD – Java Bytecode Viewer & Decompiler
A very powerful java bytecode viewer and decompiler which makes use of the javassist open source library.
Fernflower is the first actually working analytical decompiler for Java and probably for a high-level programming language in general. Naturally it is still under development.
Fernflower is licenced under the Apache Licence Version 2.0.
Krakatau provides a decompiler, assembler, and disassembler for Java bytecode.
Krakatau decompiler is helpful for converting Java binaries to readable source code. Unlike other decompilers, the Krakatau decompiler was specifically designed for working with obfuscated code and can easily handle tricks that break other decompilers. However, the Krakatau decompiler does not support some Java 8+ features such as lambdas, so it works best on older code.
On the other hand, Krakatau assembler/disassembler allows you to convert binary class files to a human readable text format, make changes, and convert it back to a class file, even for obfuscated code. You can also create your own class files from scratch by writing bytecode manually, and can examine and compare low level details of Java binaries. Unlike
javap, the Krakatau disassembler can handle even highly obfuscated code, and the disassembled output can be reassembled into a class file.
Bytecode Viewer (BCV) is an Advanced Lightweight Java/Android Reverse Engineering Suite. BCV is powered by several open source tools and it is designed to aid in the reversing process.
BCV comes with 6 decompilers, 3 disassemblers, 2 assemblers, 2 APK converters, advanced searching, debugging & more.
It’s written completely in Java, and the cool thing about Bytecode Viewer is that it is open sourced under the GPL-3.0 license.
- Simply drag and drop to decompile and search Java Jars & Android APKs
- File format support for Class, Jar, XAPK, APK, DEX, WAR, JSP, Image Resources, Text Resources & More
- 6 Built-in Java decompilers: Krakatau, CFR, Procyon, FernFlower, JADX, JD-GUI
- 3 Built-in Bytecode disassemblers, including 2 assemblers: Krakatau and Smali/BakSmali
- APK/DEX Support from Dex2Jar and Enjarify
- Built-in Java Compiler
- Advanced static-search functionality
- Customizable UI
- Plugins + Script Engine Design
- Malicious code scanning API
- Translated into over 30 languages including Arabic, German, Japanese, Mandarin, Russian, and Spanish
- Export functionality as Runnable Jar, Zip, APK, Decompile All As Zip, etc.
JODE stands for Java Optimize and Decompile Environment. It is a java package containing a decompiler and an optimizer for Java. This package is freely available under the GNU GPL.
The decompiler reads in class files and produces something similar to the original java file. Of course this can’t be perfect: There is no way to produce the comments or the names of local variables (except when compiled with debuging) and there are often more ways to write the same thing. However, JODE does its job quite well.
Jode has support for all constructs of JDK-1.3 including inner and anonymous classes.
The optimizer transforms class files in various ways with can be controlled by a script file. It supports the following operations:
- Renaming class, method, field, and local names to shorter, obfuscated, or unique names or according to a given translation table
- Removing debugging information
- Removing dead code (classes, fields, methods) and constant fields
- Optimizing local variable allocation
jdec is a Java Decompiler. It can be used to reverse the bytecodes present in a .class file to produce a Java source file which can be nearly correct or equivalent (due to different interpretations) to the original java file.
Jdec can be used through a Graphical User Interface (GUI) as well as the command line.
Java Decompiler for Windows, Mac, Linux, and Android
Cavaj Java Decompiler (for Windows)
Cavaj Java Decompiler is a free software developed for the Windows operating system. It is designed to reconstruct source code written in the Java programming language from CLASS files.
Cavaj Java Decompiler lets users decompile JAR files, ZIP files, Java applets and produce Java source code. Its simple and easy-to-use interface makes it accessible to all users and with no need to actually download and install Java, it’s a standalone program and application.
DJ Java Decompiler
With DJ Java Decompiler you can decompile java class-files and save it in text or other formats with ease.
DJ Java Decompiler is available for Windows XP, Windows 2003, Windows Vista, Windows 7, Windows 8, 8.1 and 10.
It is a decompiler and disassembler for Java that reconstructs the original source code from the compiled binary CLASS files (for example Java applets). DJ Java Decompiler is able to decompile complex Java applets and binaries, producing accurate source code. It lets you quickly obtain all essential information about the class files. It might be easy to decompile the Java files with DJ Java Decompiler.
AndroChef Java Decompiler
With AndroChef Java Decompiler you can decompile apk, dex, jar and java class files with ease. It is available for Windows XP, Windows 2003, Windows Vista, Windows 7, Windows 8, Windows 8.1 and Windows 10.
AndroChef can successfully decompile obfuscated Java 6, Java 7 and Java 8 .class and .jar files.
There used to be a time when everyone’s decompiler of choice was Jad. And it is still in demand by many.
Jad is free for non-commercial use, but since version 1.5.6 it’s no longer free for commercial use. This means that Jad cannot be included in software products (especially decompilers) without prior permission from its developer. If you want to use Jad (as a command-line utility or as a library) in your product(s) please contact the developer for conditions. At the same time, Jad can be used freely for personal needs in commercial or non-commercial environments.
From the below link, you can download Jad for different platforms including Windows, Mac OS X, and Linux.