JDK vs JRE vs JVM :principales différences
Qu'est-ce que JDK ?
JDK est un environnement de développement logiciel utilisé pour créer des applets et des applications Java. La forme complète de JDK est Java Development Kit. Les développeurs Java peuvent l'utiliser sous Windows, macOS, Solaris et Linux. JDK les aide à coder et à exécuter des programmes Java. Il est possible d'installer plusieurs versions du JDK sur le même ordinateur.
Dans ce didacticiel, vous apprendrez :
- Qu'est-ce que JDK ?
- Qu'est-ce que JRE ?
- Qu'est-ce que la JVM ?
- Pourquoi utiliser JDK ?
- Pourquoi utiliser JRE ?
- Pourquoi JVM ?
- Fonctionnalités du JDK
- Fonctionnalités de JRE
- Fonctionnalités de JVM
- Comment fonctionne JDK ?
- Comment fonctionne JRE ?
- Comment fonctionne la JVM ?
- Différence entre JDK, JRE et JVM
Qu'est-ce que JRE ?
JRE est un élément d'un logiciel conçu pour exécuter d'autres logiciels. Il contient les bibliothèques de classes, la classe de chargeur et la JVM. En termes simples, si vous souhaitez exécuter un programme Java, vous avez besoin de JRE. Si vous n'êtes pas programmeur, vous n'avez pas besoin d'installer JDK, mais juste JRE pour exécuter des programmes Java. Cependant, toutes les versions de JDK sont livrées avec Java Runtime Environment, vous n'avez donc pas besoin de télécharger et d'installer le JRE séparément sur votre PC. La forme complète de JRE est Java Runtime Environment.
Qu'est-ce que la JVM ?
JVM est un moteur qui fournit un environnement d'exécution pour piloter le code Java ou les applications. Il convertit le bytecode Java en langage machine. JVM fait partie de Java Run Environment (JRE). Il ne peut pas être téléchargé et installé séparément. Pour installer JVM, vous devez installer JRE. La forme complète de JVM est Java Virtual Machine.
Dans de nombreux autres langages de programmation, le compilateur produit du code machine pour un système spécifique. Cependant, le compilateur Java produit du code pour une machine virtuelle appelée JVM.
DIFFÉRENCES CLÉS
- JDK est un kit de développement logiciel, tandis que JRE est un ensemble de logiciels qui permet d'exécuter un programme Java, tandis que JVM est un environnement permettant d'exécuter du bytecode.
- La forme complète de JDK est Java Development Kit, tandis que la forme complète de JRE est Java Runtime Environment, tandis que la forme complète de JVM est Java Virtual Machine.
- JDK dépend de la plate-forme, JRE dépend également de la plate-forme, mais JVM n'est pas indépendant de la plate-forme.
- JDK contient des outils de développement, de débogage, etc. JRE contient des bibliothèques de classes et d'autres fichiers de support, tandis que les outils de développement logiciel ne sont pas inclus dans JVM.
- JDK est fourni avec le programme d'installation, d'autre part, JRE ne contient que l'environnement pour exécuter le code source alors que JVM est fourni à la fois dans le logiciel JDK et JRE.
Pourquoi utiliser JDK ?
Voici les principales raisons d'utiliser JDK :
- JDK contient les outils nécessaires pour écrire des programmes Java et JRE pour les exécuter.
- Il comprend un compilateur, un lanceur d'applications Java, Appletviewer, etc.
- Le compilateur convertit le code écrit en Java en code binaire.
- Le lanceur d'applications Java ouvre un JRE, charge la classe nécessaire et exécute sa méthode principale.
Pourquoi utiliser JRE ?
Voici les principales raisons d'utiliser JRE :
- JRE contient des bibliothèques de classes, JVM et d'autres fichiers de support. Il ne contient aucun outil pour le développement Java comme un débogueur, un compilateur, etc.
- Il utilise des classes de package importantes telles que math, swingetc, util, lang, awt et des bibliothèques d'exécution.
- Si vous devez exécuter des applets Java, JRE doit être installé sur votre système.
Pourquoi JVM ?
Voici les principales raisons d'utiliser JVM :
- JVM fournit un moyen indépendant de la plate-forme d'exécuter le code source Java.
- Il dispose de nombreuses bibliothèques, outils et frameworks.
- Une fois que vous avez exécuté le programme Java, vous pouvez l'exécuter sur n'importe quelle plate-forme et gagner beaucoup de temps.
- JVM est livré avec un compilateur JIT (Just-in-Time) qui convertit le code source Java en langage machine de bas niveau. Par conséquent, il s'exécute plus rapidement qu'une application standard.
Fonctionnalités du JDK
Voici les fonctionnalités importantes de JDK :
- Il vous permet de gérer plusieurs extensions dans un seul bloc catch.
- JDK inclut toutes les fonctionnalités de JRE.
- Il contient des outils de développement tels qu'un compilateur, un débogueur, etc.
- JDK fournit l'environnement pour développer et exécuter le code source Java.
- Il peut être installé sur les systèmes d'exploitation Windows, Unix et Mac.
- L'opérateur diamant peut être utilisé pour spécifier une interface de type générique au lieu d'écrire l'interface exacte.
Fonctionnalités de JRE
Voici les fonctionnalités importantes de JRE :
- Java Runtime Environment est un ensemble d'outils à l'aide desquels la JVM s'exécute réellement.
- JRE contient une technologie de déploiement, y compris Java Web Start et Java Plug-in.
- Les développeurs peuvent facilement exécuter le code source dans JRE, mais ils ne peuvent pas écrire et compiler le programme Java.
- Il comprend des bibliothèques d'intégration telles que Java Database Connectivity (JDBC), Remote Method Invocation (RMI), Java Naming and Directory Interface (JNDI), et plus encore.
- JRE dispose d'un client de machine virtuelle JVM et Java HotSpot.
Fonctionnalités de JVM
Voici les fonctionnalités importantes de JVM :
- Il vous permet d'exécuter des applications dans un environnement cloud ou sur votre appareil.
- La machine virtuelle Java convertit le code binaire en code spécifique à la machine.
- Il fournit des fonctions Java de base telles que la gestion de la mémoire, la sécurité, la récupération de place, etc.
- JVM exécute le programme en utilisant les bibliothèques et les fichiers fournis par Java Runtime Environment.
- JDK et JRE contiennent tous deux une machine virtuelle Java.
- Il peut exécuter le programme Java ligne par ligne, il est donc également appelé interpréteur.
- JVM est facilement personnalisable, par exemple, vous pouvez lui allouer de la mémoire minimale et maximale.
- Il est indépendant du matériel et du système d'exploitation. Ainsi, vous pouvez écrire un programme Java une seule fois et l'exécuter n'importe où.
Comment fonctionne JDK ?

Voici les composants importants du JDK :
- JDK et JRE :Le JDK permet aux programmeurs de créer des programmes Java de base qui peuvent être exécutés par le JRE, qui inclut la JVM et les bibliothèques de classes.
- Bibliothèques de classes : Il s'agit d'un groupe de bibliothèques chargeables dynamiquement que le programme Java peut appeler au moment de l'exécution.
- Compilateurs : C'est un programme Java qui accepte les fichiers texte des développeurs et se compile en fichier de classe Java. C'est la forme courante de sortie donnée par le compilateur, qui contient du code d'octet Java. En Java, le compilateur principal est Javac.
- Débogueurs : Debugger est un programme Java qui permet aux développeurs de tester et de déboguer des programmes Java.
- JavaDoc : JavaDoc est une documentation créée par Sun Microsystems pour Java. JavaDoc peut être utilisé pour générer la documentation de l'API dans un fichier HTML à partir du programme source
Comment fonctionne JRE ?

JRE contient une instance de JVM, des classes de bibliothèque et des outils de développement. Une fois que vous avez écrit et compilé du code Java, le compilateur génère un fichier de classe contenant du code octet.
Voici les composants importants de JRE :
- Chargeurs de classes : Le chargeur de classe charge diverses classes nécessaires à l'exécution d'un programme Java. JVM utilise trois chargeurs de classe appelés chargeur de classe d'amorçage, chargeur de classe d'extensions et chargeur de classe système.
- Vérificateur de byte code : Le vérificateur de byte code vérifie le bytecode afin que le code ne perturbe pas l'interpréteur.
- Interprète : Une fois les classes chargées et le code vérifié, l'interpréteur lit le code ligne par ligne.
- Exécution : Le temps d'exécution est un système utilisé principalement en programmation pour décrire la période de temps pendant laquelle un programme particulier s'exécute.
- Matériel : Une fois que vous avez compilé le code natif Java, il s'exécute sur une plate-forme matérielle spécifique.
De cette manière, le programme Java s'exécute en JRE.
Comment fonctionne la JVM ?

Voici les composants importants de JVM :
1) Chargeur de classe
Le chargeur de classe est un sous-système utilisé pour charger les fichiers de classe. Il remplit trois fonctions principales à savoir. Chargement, liaison et initialisation.
2) Zone de méthode
La zone de méthode JVM stocke la structure de la classe comme les métadonnées, le code des méthodes Java et le pool d'exécution constant.
3) Tas
Tous les objets, tableaux et variables d'instance sont stockés dans un tas. Cette mémoire est partagée entre plusieurs threads.
4) Piles de langage JVM
Les piles du langage Java stockent les variables locales et ses résultats partiels. Chaque thread possède sa propre pile de langage JVM, créée simultanément à la création du thread. Un nouveau cadre est créé lorsque la méthode est invoquée et il est supprimé lorsque le processus d'invocation de la méthode est terminé.
5) Registres PC
Les registres du PC stockent l'adresse de l'instruction de la machine virtuelle Java en cours d'exécution. En Java, chaque thread a son propre registre PC.
6) Piles de méthodes natives
Les piles de méthodes natives contiennent l'instruction du code natif qui dépend de la bibliothèque native. Il alloue de la mémoire sur des tas natifs ou utilise n'importe quel type de pile.
7) Moteur d'exécution
Il s'agit d'un type de logiciel utilisé pour tester des logiciels, du matériel ou des systèmes complets. Le moteur d'exécution des tests ne contient jamais d'informations sur le produit testé.
8) Interface de méthode native
L'interface de méthode native est un cadre de programmation. Il permet au code Java, qui s'exécute dans une JVM, d'être appelé par des bibliothèques et des applications natives.
9) Bibliothèques de méthodes natives
Les bibliothèques natives sont une collection de bibliothèques natives (C, C++), nécessaires au moteur d'exécution.
Différence entre JDK, JRE et JVM
Voici les principales différences entre JDK, JRE et JVM :
JDK | JRE | JVM |
---|---|---|
La forme complète du JDK est le kit de développement Java. | La forme complète de JRE est Java Runtime Environment. | La forme complète de JVM est Java Virtual Machine. |
JDK est un kit de développement logiciel pour développer des applications en Java. | Il s'agit d'un ensemble de logiciels qui fournit aux bibliothèques de classes Java les composants nécessaires pour exécuter du code Java. | JVM exécute le bytecode Java et fournit un environnement pour l'exécuter. |
JDK dépend de la plate-forme. | JRE dépend également de la plate-forme. | JVM dépend fortement de la plate-forme. |
Il contient des outils pour développer, déboguer et surveiller le code Java. | Il contient des bibliothèques de classes et d'autres fichiers de support dont JVM a besoin pour exécuter le programme. | Les outils de développement de logiciels ne sont pas inclus dans JVM. |
C'est le sur-ensemble de JRE | C'est le sous-ensemble de JDK. | JVM est un sous-ensemble de JRE. |
Le JDK permet aux développeurs de créer des programmes Java qui peuvent être exécutés et exécutés par le JRE et la JVM. | Le JRE est la partie de Java qui crée la JVM. | C'est le composant de la plate-forme Java qui exécute le code source. |
JDK est fourni avec le programme d'installation. | JRE ne contient qu'un environnement pour exécuter le code source. | JVM intégrée à la fois au logiciel JDK et JRE. |
Java