JDK ou JRE : que choisir pour un débutant ? Comprenons une fois pour toutes
Si vous commencez tout juste votre parcours dans le monde de Java, vous serez tôt ou tard confronté à la question : « Que dois-je télécharger exactement ? JDK, JRE, ou peut-être juste JVM ? ». Cette question est si populaire que sur Stack Overflow, elle a recueilli des milliers de vues et des dizaines de réponses. Et ce n'est pas un hasard : la confusion entre ces abréviations peut ruiner votre premier projet dès le départ.
Imaginez que Java est une cuisine. JRE est un restaurant déjà prêt où vous pouvez venir manger. JDK est la cuisine elle-même, avec des cuisinières, des couteaux et des livres de recettes, où vous pouvez préparer n'importe quoi. Vous sentez la différence ? Mettons tout à plat pour que vous n'ayez plus jamais de doute sur ce qu'il faut télécharger.
L'essentiel en bref : JVM, JRE, JDK
Avant de plonger dans les détails, comprenons la hiérarchie de base. Beaucoup de débutants pensent qu'il s'agit de trois produits différents. En réalité, c'est une poupée russe, où un composant est imbriqué dans un autre.
- JVM (Java Virtual Machine) — c'est le cœur. La machine virtuelle qui exécute le bytecode. Elle est inutile seule, comme un moteur sans voiture.
- JRE (Java Runtime Environment) — c'est JVM + un ensemble de bibliothèques standard (par exemple,
java.lang,java.util). C'est l'environnement pour exécuter des programmes Java prêts à l'emploi. - JDK (Java Development Kit) — c'est JRE + les outils de développement : le compilateur
javac, le débogueurjdb, l'utilitairejavadocet d'autres.
Une formule simple à retenir :
JDK = JRE + Outils de développementJRE = JVM + BibliothèquesMaintenant, lorsque vous voyez la ligne « Télécharger JDK » sur le site d'Oracle, vous savez qu'il contient tout le nécessaire à la fois pour exécuter et pour écrire du code.
Pourquoi JRE est-il nécessaire si JDK existe ?
Bonne question. Si JDK inclut JRE, pourquoi télécharger « juste l'environnement d'exécution » ? La réponse réside dans la taille et le public cible.
Imaginez que vous avez créé un super jeu en Java et que vous voulez le donner à un ami pour qu'il y joue. Votre ami n'est pas programmeur. Il n'a pas l'intention de compiler quoi que ce soit. Il a seulement besoin d'une « boîte » pour exécuter le fichier .jar. Lui faire transporter un JDK entier d'environ 300 Mo est inutile. JRE prend moins de place (environ 100-150 Mo) et ne contient pas d'outils superflus qui pourraient dérouter un utilisateur ordinaire.
C'est pourquoi sur les sites de téléchargement de Java, on propose JRE aux utilisateurs ordinaires. Et aux développeurs, on propose JDK. Dans les versions récentes (Java 11+), Oracle est allé encore plus loin en les fusionnant pratiquement, faisant du JDK un module « autonome ». Mais conceptuellement, la différence demeure.
Comment vérifier ce qui est installé ?
La méthode la plus simple est d'ouvrir un terminal (invite de commandes) et de taper quelques commandes. Cela vous fera gagner des heures de recherche Google lorsque quelque chose ne fonctionnera pas.
Étape 1. Vérifiez la version de Java (JRE) :
java -versionSi JRE est installé, vous verrez quelque chose comme :
java version "17.0.2" 2022-01-18 LTSJava(TM) SE Runtime Environment (build 17.0.2+8-LTS-86)Étape 2. Vérifiez le compilateur (JDK) :
javac -versionSi vous voyez :
javac 17.0.2Félicitations ! JDK est installé. Si la commande n'est pas trouvée, vous avez soit uniquement JRE, soit Java n'est pas configuré dans les variables d'environnement (PATH).
Exemple concret : pourquoi sans JDK vous ne pouvez pas écrire de code
Imaginons une situation. Vous avez installé uniquement JRE (par exemple, pour jouer à Minecraft). Vous ouvrez le Bloc-notes et écrivez votre premier « Hello, World! » :
public class HelloWorld { public static void main(String[] args) { System.out.println("Bonjour le monde !"); }}Vous enregistrez le fichier sous HelloWorld.java.