The “Java Decompiler project” aims to develop tools in order to decompile and analyze Java 5 “byte code” and the later versions.

JD-Core is a library that reconstructs Java source code from one or more “.class” files. JD-Core may be used to recover lost source code and explore the source of Java runtime libraries. New features of Java 5, such as annotations, generics or type “enum”, are supported. JD-GUI and JD-Eclipse include JD-Core library.

JD-GUI is a standalone graphical utility that displays Java source codes of “.class” files. You can browse the reconstructed source code with the JD-GUI for instant access to methods and fields.

JD-Eclipse is a plug-in for the Eclipse platform. It allows you to display all the Java sources during your debugging process, even if you do not have them all.

JD-IntelliJ is a plug-in for... the IntilliJ IDE.

JD-Core, JD-GUI & JD-Eclipse are open source projects released under the GPLv3 License.

  • JD-Core and JD-GUI are written in Java and Groovy.
  • JD-Core works with most current compilers including the following:
    • jdk1.1.8, jdk1.3.1, jdk1.4.2, jdk1.5.0, jdk1.6.0, jdk1.7.0
    • jrockit90_150_06
    • jikes-1.22
    • harmony-jdk-r533500
    • Eclipse Java Compiler v_677_R32x, 3.2.1 release
  • JD-GUI supports Drag and Drop.
  • JD-GUI supports CLASS, JAR, WAR, EAR & ZIP files.
  • JD-GUI displays color coded Java source code.
  • JD-GUI allows you to browse the CLASS files hierarchy.
  • JD-GUI displays LOG files, and allow you to decompile CLASS files appearing in Java stack traces.
  • Known limitations:

Preview

Description

JD-Core 0.x.y is a first-generation Java decompiler, published in 2008. Like JAD, JD-Core 0.x.y is powered by a "simple" byte-code pattern recognition engine. Decompiled source codes are often satisfactory, but this kind of decompiler has several structural limitations.

More recent decompilers have not made this choice. Fernflower and Procyon have introduced a new quality standard.

In 2015, I started to rewrite from scratch a new Java decompiler. This new version uses CFG, includes many unit tests, and is design to be expandable.

JD-Core 1.x.y can display now:

This preview allows you to compare JD-Core 0.7.1 and JD-Core-1.0.0.

How to launch the preview ?

Execute "java -jar jd-gui-x.y.z.jar" or "java -classpath jd-gui-x.y.z.jar org.jd.gui.App"

JD-GUI is a standalone graphical utility that displays Java source codes of “.class” files. You can browse the reconstructed source code with the JD-GUI for instant access to methods and fields.

Releases

Source code & old releases

Donations

Did JD-GUI help you to solve a critical situation? Do you use JD-Eclipse daily? What about making a donation?

JD-Eclipse is a plug-in for the Eclipse platform. It allows you to display all the Java sources during your debugging process, even if you do not have them all.

Release

Source code & old releases

Installation

  1. Download and unzip the JD-Eclipse Update Site,
  2. Launch Eclipse,
  3. Click on "Help > Install New Software...",
  4. Click on button "Add..." to add an new repository,
  5. Enter "JD-Eclipse Update Site" and select the local site directory,
  6. Check "Java Decompiler Eclipse Plug-in",
  7. Next, next, next... and restart Eclipse.

Donations

Did JD-GUI help you to solve a critical situation? Do you use JD-Eclipse daily? What about making a donation?

JD-IntelliJ is a plug-in for IntelliJ IDEA, initiated by Brice Dutheil. It allows you to display all the Java sources during your debugging process, even if you do not have them all. Currently, the project is under development. The Java sources are hosted on Bitbucket. Your contributions are welcome.

Release 

Source code & old releases