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-guiOverview
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
- 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.dexto a jar first (e.g. withdex2jar) before opening in JD-GUI, or usejadxwhich handles DEX natively. - Good complement to
jsqlfor 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.dexen jar au préalable (par exemple avecdex2jar) avant de l’ouvrir dans JD-GUI, ou utiliserjadxqui gère le DEX nativement. - Bon complément à
jsqlpour 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