Aller au contenu

Outils du JDK et leur utilité

Voici quelques outils à connaître en Java.

Outil Commande À quoi ça sert concrètement ? Analogie COBOL
Compilateur Java javac Compile un fichier .java en .class (bytecode JVM). Compilateur COBOL (IGYCRCTL) produisant du code objet.
Lanceur Java java Exécute un programme Java compilé. CALL ou EXEC d’un programme compilé sur mainframe.
Archiveur Java jar Regroupe des .class et ressources dans un fichier .jar (comme un package exécutable). IEBCOPY pour gérer des bibliothèques de modules.
Générateur documentation javadoc Génère automatiquement une documentation HTML à partir du code. Documentation extraite des commentaires COBOL.
Désassembleur Java javap Affiche le bytecode contenu dans un fichier .class. Désassembleur de code objet COBOL (DISASM).
Gestionnaire de clés keytool Crée et gère des certificats (sécurité SSL/TLS). RACF pour la gestion des certificats.
Outil de signature jarsigner Signe un .jar pour garantir son intégrité. Signature numérique sur z/OS.
Outil de monitoring JVM jconsole Surveille mémoire, threads et CPU d’une JVM en temps réel. RMF ou outils de monitoring système mainframe.
Diagnostic des threads jstack Affiche la pile d’exécution des threads (debug blocages). SYSMDUMP pour analyser un blocage programme.
Dump mémoire (heap) jmap Génère un dump mémoire pour analyser l’utilisation du heap. SVCDUMP pour analyse mémoire sur mainframe.

Classés par catégorie

  1. Compilation & Exécution
    • javac
    • java
    • jar
  2. Documentation & Analyse
    • javadoc
    • javap
  3. Sécurité
    • keytool
    • jarsigner
  4. Diagnostic & Performance
    • jconsole
    • jstack
    • jmap

Quelques Exemples d’utilisation des outils

Compiler et exécuter un programme

# Compilation
javac MonProgramme.java

# Exécution
java MonProgramme

Créer une archive JAR

# Créer un JAR contenant les fichiers .class
jar cvf MonProgramme.jar *.class

Générer de la documentation

# Générer la documentation dans un dossier "doc"
javadoc -d doc MonProgramme.java

Déboguer avec jdb

# Compiler avec l'option -g pour inclure les infos de débogage
javac -g MonProgramme.java

# Lancer le débogueur
jdb MonProgramme

Analyser un dump de mémoire avec jhat

# Générer un dump de heap
jmap -dump:format=b,file=heap.dump <PID>

# Analyser le dump
jhat heap.dump

Dossier bin non visible

Dans le projet Java sous Eclipse, le dossier bin qui contient les classes compilées n’apparait pas !

Voici à quoi ressemble le Package Explorer avant/après l’affichage du dossier bin :

Avant (dossier bin masqué) :

MonProjetJava
├── src
│   └── monpackage
│       └── MaClasse.java

Après (dossier bin affiché) :

MonProjetJava
├── src
│   └── monpackage
│       └── MaClasse.java
└── bin
    └── monpackage
        └── MaClasse.class

Pourquoi le dossier bin est masqué par défaut dans Eclipse ?

Eclipse masque les dossiers de sortie (bin, target) par défaut pour :