explaingit

java-decompiler/jd-gui

Analysis updated 2026-06-24

15,084JavaAudience · developerComplexity · 2/5LicenseSetup · easy

TLDR

JD-GUI is a desktop app that decompiles Java .class and .jar files back into readable source code so you can browse the methods and structure of any compiled JVM program.

Mindmap

mindmap
  root((JD-GUI))
    Inputs
      class files
      jar archives
    Outputs
      Reconstructed Java source
      Class and method browser
    How to run
      Double click JAR
      java -jar
      Native bundle
    Build
      gradlew build
      Windows zip
      macOS tar
      deb and rpm
    Use cases
      Inspect third party JAR
      Debug without source
      Audit dependency
    License
      GPL v3
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Read the source of a third-party JAR when the upstream project has lost its source code.

USE CASE 2

Debug a stack trace that points into a closed-source library by browsing the decompiled class.

USE CASE 3

Audit a dependency JAR for unexpected behaviour before shipping it.

USE CASE 4

Build and customise the decompiler itself, then ship your own platform bundle.

What is it built with?

JavaGradleSwing

How does it compare?

java-decompiler/jd-guicryptomator/cryptomatorzhisheng17/flink-learning
Stars15,08415,10515,053
LanguageJavaJavaJava
Last pushed2026-05-06
MaintenanceMaintained
Setup difficultyeasyeasyhard
Complexity2/53/54/5
Audiencedevelopergeneraldata

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 30min

Prebuilt bundles available for Windows, macOS, and Linux, building from source needs JDK and the Gradle wrapper.

GNU GPL v3, so you can use and modify it freely but any redistributed changes must also be open-sourced under GPL v3.

In plain English

JD-GUI is a standalone desktop application that lets you look at the source code of a compiled Java program. When Java code is compiled, the source files turn into .class files, which are not directly readable. JD-GUI reverses that process, called decompilation, and shows you a reconstructed version of the original Java source. The result is not always identical to what the developer originally wrote, but it is close enough to read, navigate, and understand the program's structure. The user interface is simple. You open a .class file or a .jar archive through the File menu, the Recent Files list, or by dragging files in from your file manager. JD-GUI then displays the reconstructed source, and you can browse through the methods and fields of each class. The README explains how to build the project from source. After cloning the repository you run the included Gradle wrapper with ./gradlew build, which produces a runnable JAR file along with platform-specific bundles: a Windows zip, a macOS tar archive, and Debian and RPM packages for Linux. Launching JD-GUI is a matter of double-clicking the JAR, the jd-gui.exe on Windows, or the JD-GUI application on macOS. From a terminal you can also start it with java -jar jd-gui-x.y.z.jar. The project supports extensions: extra JARs can be passed on the classpath when starting the app to add functionality. Helper Gradle tasks generate IntelliJ IDEA and Eclipse project files for developers who want to work on JD-GUI itself. Uninstalling is described as deleting the JAR and the jd-gui.cfg configuration file, or dragging the application to the trash on macOS. JD-GUI is part of a wider Java Decompiler project (linked from the README as java-decompiler.github.io) and is released under the GNU GPL v3 license. The README also includes PayPal links for donations in euros or US dollars.

Copy-paste prompts

Prompt 1
Build jd-gui from source on macOS with the included Gradle wrapper and produce the .tar bundle.
Prompt 2
Open a third-party fat JAR in jd-gui and walk me through finding the class that handles HTTP authentication.
Prompt 3
Write a shell script that runs jd-gui in batch mode against every JAR in a directory and dumps the reconstructed sources to disk (or tells me why it cannot).
Prompt 4
Compare jd-gui vs CFR vs Procyon for decompiling a Kotlin-compiled JAR with lambdas.
Prompt 5
Set up jd-gui with an extra extension JAR on the classpath to add a custom search feature.

Frequently asked questions

What is jd-gui?

JD-GUI is a desktop app that decompiles Java .class and .jar files back into readable source code so you can browse the methods and structure of any compiled JVM program.

What language is jd-gui written in?

Mainly Java. The stack also includes Java, Gradle, Swing.

What license does jd-gui use?

GNU GPL v3, so you can use and modify it freely but any redistributed changes must also be open-sourced under GPL v3.

How hard is jd-gui to set up?

Setup difficulty is rated easy, with roughly 30min to a first successful run.

Who is jd-gui for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.