Architecture de la plateforme Java : JVM, JRE et JDK

02 Sep 2019 02 Sep 2019 9025 vues ESSADDOUKI Mostafa 7 min de lecture
Introduction
1 Nouveautés de Java 11 2 Différences entre JDK, JRE et JVM 3 Structure d'un programme Java - Hello World 4 Mots clés et conventions de dénomination en Java 5 Types de données intégrés en Java 6 Les variables en Java 7 Classes enveloppe - Number, Integer, Double ... 8 Lire les entrées clavier en Java
Structures de contrôle
9 Les opérateurs en Java 10 Les structures conditionnelles en Java 11 Les boucles en Java 12 Instructions de contrôle de boucle - break, continue
Chaines de caractères
13 Les chaines en Java - API String 14 Les chaines en Java - StringBuffer et StringBuilder 15 Les expressions régulières en Java
Programmation OO
16 Objets et classes en Java 17 Modificateurs d'accès Java - public, private, protected et package 18 Méthodes et surcharge des méthodes en Java 19 les constructeurs en Java 20 L'héritage en Java 21 Classes abstraites en Java 22 Interfaces et héritage multiple en Java 23 Les classes imbriquées en Java 24 Les singletons en Java 25 Classes et méthodes génériques 26 Interface fonctionnelle et expressions Lambda en Java
Tableaux et collections
27 Les tableaux en Java 28 Classe Arrays - java.util.Arrays 29 Les listes dynamiques - java.util.ArrayList 30 Les listes chaînées en Java - java.util.LinkedList 31 HashSet en Java - java.util.HashSet 32 HashMap en Java - java.util.HashMap
Gestion des fichiers
33 Comprendre les fichiers informatiques 34 Utilisation des classes Path et Files en Java 35 Lecture et écriture dans un fichier en Java 36 Fichiers à accès aléatoire en Java
Gestion d'exceptions
37 Gestion d'exceptions en Java 38 Créez vos propres classes d'exception en Java
Programmation concurrente
39 Introduction à la programmation concurrente en Java - Multi-threads 40 classe java.lang.Thread 41 Synchronisation des threads en Java
Cours Java pour les débutants — Étape 2 sur 41

Architecture de la plateforme Java : JVM, JRE et JDK

  Prérequis

Notions de base en informatique : connaissance du rôle d'un compilateur et d'un système d'exploitation.

  Objectifs

Distinguer les trois composants fondamentaux de la plateforme Java (JVM, JRE, JDK), comprendre leur rôle respectif et leur relation d'imbrication.

  Vocabulaire

Sigle Signification Rôle principal
JVM Java Virtual Machine Exécute le Bytecode Java
JRE Java Runtime Environment Fournit l'environnement d'exécution (JVM + bibliothèques)
JDK Java Development Kit Kit complet de développement (JRE + outils)

1. La JVM — Java Virtual Machine

Définition — JVM La JVM (Java Virtual Machine) est une machine abstraite qui permet à votre ordinateur d'exécuter un programme Java. Elle joue le rôle d'intermédiaire entre le code compilé Java et le matériel physique de la machine.

1.1 Processus de compilation et d'exécution

Lorsque vous exécutez un programme Java, deux étapes se succèdent :

  1. Le compilateur Java transforme votre code source (.java) en Bytecode (.class).
  2. La JVM convertit ce Bytecode en code machine natif — les instructions directement exécutables par le processeur.
   
Cycle de vie d'un programme Java Bash
# Étape 1 — Compilation : .java → .class (Bytecode)
javac MonProgramme.java

# Étape 2 — Exécution : la JVM interprète le Bytecode
java MonProgramme

Java Virtual Machine

1.2 Indépendance de la plateforme — WORA

Principe WORA Les applications Java sont qualifiées de WORA — Write Once, Run Anywhere : un code Java compilé une seule fois peut s'exécuter sur n'importe quel système disposant d'une JVM compatible, sans modification ni recompilation.

Java est un langage indépendant de la plateforme précisément parce que le code est compilé pour la JVM — une machine abstraite universelle — et non pour le matériel physique de votre ordinateur. C'est la JVM elle-même qui se charge de la traduction vers les instructions spécifiques à chaque processeur (x86, ARM, etc.).

Analogie Pensez à la JVM comme à un traducteur universel : vous écrivez votre discours une fois (le Bytecode), et le traducteur (la JVM) le reformule dans la langue locale de chaque pays (chaque OS / processeur).

2. Le JRE — Java Runtime Environment

Définition — JRE Le JRE (Java Runtime Environment) est un progiciel qui regroupe la JVM et les bibliothèques de classes Java standard nécessaires à l'exécution des applications Java. Le JRE est le sur-ensemble de la JVM.

Qu'est-ce que JRE

2.1 Composition du JRE

Composant Rôle
JVM Exécute le Bytecode
Bibliothèques standard Classes Java essentielles (java.lang, java.util, java.io…)
Fichiers de configuration Propriétés de sécurité, paramètres réseau, etc.
Quand utiliser le JRE seul ? Si vous souhaitez uniquement exécuter des applications Java déjà compilées (un logiciel distribué en .jar par exemple) sans avoir besoin de les développer, le JRE seul est suffisant.
Attention — Depuis Java 11 Oracle ne distribue plus de JRE séparé depuis Java 11. Il est recommandé d'utiliser directement le JDK, ou de créer un runtime personnalisé avec l'outil jlink qui ne contient que les modules nécessaires à votre application.

3. Le JDK — Java Development Kit

Définition — JDK Le JDK (Java Development Kit) est le kit de développement complet pour créer des applications Java. Il inclut le JRE (et donc la JVM) ainsi qu'un ensemble d'outils de développement.

Qu'est-ce que JDK

3.1 Outils inclus dans le JDK

Outil Commande Rôle
Compilateur javac Compile le code source .java en Bytecode .class
Interpréteur java Lance l'exécution d'un programme via la JVM
Documentation javadoc Génère la documentation HTML depuis les commentaires
Archiveur jar Crée et manipule les archives .jar
Débogueur jdb Débogage interactif des programmes Java
Profileur jfr Java Flight Recorder — analyse des performances

  Exemple — Compiler et exécuter un programme Java

   
Bonjour.java Java
public class Bonjour {
    public static void main(String[] args) {
        System.out.println("Bonjour, Java !");
    }
}
# Compilation avec le JDK
javac Bonjour.java

# Exécution via la JVM (incluse dans le JDK)
java Bonjour
Sortie
Bonjour, Java !

4. Relation entre JVM, JRE et JDK

Relation d'imbrication Les trois composants s'imbriquent selon le principe suivant :

JDK ⊇ JRE ⊇ JVM

Le JDK contient le JRE qui contient lui-même la JVM. Installer le JDK installe automatiquement les deux autres composants.
Besoin Composant à installer
Exécuter un programme Java (.jar) JRE (ou JDK)
Développer et compiler du code Java JDK (contient tout)
Comprendre l'exécution du Bytecode JVM (incluse dans JRE et JDK)
Conseil d'installation En pratique, installez toujours le JDK (version LTS recommandée : Java 21). Vous disposez ainsi de tout le nécessaire, que ce soit pour développer ou simplement exécuter des applications Java.

5. Exercice de vérification

JVM, JRE ou JDK ?

Niveau : Débutant

Pour chacune des situations suivantes, indiquez quel composant il faut installer parmi JVM, JRE et JDK, et justifiez brièvement votre réponse.

Travail demandé

  1. Un utilisateur souhaite lancer un logiciel de comptabilité livré sous forme de fichier .jar.
  2. Un développeur veut créer une nouvelle application Java from scratch.
  3. Un serveur de production n'a besoin que d'exécuter une application Java déjà compilée.
  4. Un stagiaire veut générer la documentation JavaDoc de son projet.

  L'essentiel en bref

La plateforme Java repose sur trois composants imbriqués : la JVM exécute le Bytecode et garantit l'indépendance vis-à-vis du matériel (principe WORA) ; le JRE enrichit la JVM avec les bibliothèques standard nécessaires à l'exécution des programmes ; le JDK complète l'ensemble avec les outils de développement (javac, javadoc, jar…). En pratique, installez toujours le JDK — de préférence dans sa dernière version LTS.

Sortie
// La sortie apparaîtra ici…
Prêt · Ctrl+Entrée pour exécuter

Discussion (0)

Soyez le premier à laisser un commentaire !

Laisser un commentaire

Votre commentaire sera visible après modération.