← retour aux outils back to tools

# JD-GUI

Utilitaire graphique autonome qui affiche le code source Java décompilé à partir de fichiers .class et .jar. Standalone graphical utility that displays Java source code decompiled from .class and .jar files.

↗ https://github.com/java-decompiler/jd-gui

## Overview

JD-GUI is a GUI decompiler for Java bytecode. Point it at a `.class` file or a whole `.jar` and it reconstructs readable (if sometimes imperfect) Java source, with a tree view for navigating packages/classes and search across the decompiled codebase. It’s a go-to first step when assessing Java desktop apps, Android app JARs (after conversion), thick-client applications, or any distributed `.jar` where you need to read the logic without source access.

## Common Usage

Launch the GUI

    jd-gui

Open a specific jar directly from the command line

    jd-gui target-app.jar

Batch-decompile a jar to source files (non-interactive, via jd-cli variant)

    jd-cli target-app.jar -od ./decompiled-src/

## Typical Workflow

1. Open the target application’s jar

    jd-gui webapp-backend.jar

    # 2. Use the search bar (Ctrl+Shift+S) to grep for strings of interest
    #    e.g. "password", "secret", "TODO", hardcoded IPs/URLs

    # 3. Right-click a class -> Save Source to export .java files for grepping
    #    or feeding into static analysis tooling

    grep -r "password\|apikey\|BEGIN RSA" ./decompiled-src/

## Notes

- Decompilation isn’t always perfect — obfuscated or heavily optimized bytecode can produce misleading or broken-looking source; cross-check against bytecode (`javap -c`) when in doubt.
- For Android APKs, convert `classes.dex` to a jar first (e.g. with `dex2jar`) before opening in JD-GUI, or use `jadx` which handles DEX natively.
- Good complement to `jsql` for source review after gaining access to a Java-backed app’s JARs.

Help / Man page

    jd-gui [file.jar|file.class ...]

    JD-GUI is primarily GUI-driven; no extensive CLI flag set.

    Key shortcuts:
      Ctrl+O          Open file
      Ctrl+Shift+S    Search across all classes
      Ctrl+S          Save decompiled source for current class
      Right-click -> Save All Sources    Batch-export entire jar to .java files

    CLI companion (jd-cli):
      jd-cli <input.jar> -od <output_dir>    Batch decompile without GUI
      jd-cli -h                              Show jd-cli options

## Vue d’ensemble

JD-GUI est un décompilateur graphique pour le bytecode Java. On lui pointe un fichier `.class` ou tout un `.jar` et il reconstruit du code source Java lisible (parfois imparfait), avec une vue en arborescence pour naviguer dans les packages/classes et une recherche à travers le code décompilé. C’est une première étape incontournable pour auditer des applications Java desktop, des JARs d’applications Android (après conversion), des applications thick-client, ou tout `.jar` distribué où l’on doit lire la logique sans accès au code source.

## Utilisation courante

    # Lancer le GUI
    jd-gui

    # Ouvrir un jar spécifique directement depuis la ligne de commande
    jd-gui target-app.jar

    # Décompiler un jar en masse vers des fichiers source (non interactif, via la variante jd-cli)
    jd-cli target-app.jar -od ./decompiled-src/

## Workflow typique

    # 1. Ouvrir le jar de l'application cible
    jd-gui webapp-backend.jar

    # 2. Utiliser la barre de recherche (Ctrl+Shift+S) pour grep les chaînes intéressantes
    #    ex. "password", "secret", "TODO", IPs/URLs en dur

    # 3. Clic droit sur une classe -> Save Source pour exporter les fichiers .java à grep
    #    ou à passer à des outils d'analyse statique

    # 4. Grep sur le code exporté
    grep -r "password\|apikey\|BEGIN RSA" ./decompiled-src/

## Notes

- La décompilation n’est pas toujours parfaite : le bytecode obfusqué ou fortement optimisé peut produire du code source trompeur ou d’apparence cassée ; vérifier avec le bytecode (`javap -c`) en cas de doute.
- Pour les APK Android, convertir `classes.dex` en jar au préalable (par exemple avec `dex2jar`) avant de l’ouvrir dans JD-GUI, ou utiliser `jadx` qui gère le DEX nativement.
- Bon complément à `jsql` pour la revue de code source une fois l’accès obtenu aux JARs d’une application backée par Java.

Aide / Page de manuel

    jd-gui [file.jar|file.class ...]

    JD-GUI is primarily GUI-driven; no extensive CLI flag set.

    Key shortcuts:
      Ctrl+O          Open file
      Ctrl+Shift+S    Search across all classes
      Ctrl+S          Save decompiled source for current class
      Right-click -> Save All Sources    Batch-export entire jar to .java files

    CLI companion (jd-cli):
      jd-cli <input.jar> -od <output_dir>    Batch decompile without GUI
      jd-cli -h                              Show jd-cli options