Différence entre JDK, JRE et JVM
L’avantage le plus important concernant les programmes Java réside dans la possibilité d’exécuter le même programme sur une grande variété de systèmes d’exploitation sans qu’il soit nécessaire de le recompiler pour chacun d’entre eux. Pour ce faire, l’application est compilée dans un langage intermédiaire interprété sur le système d’exploitation ciblé. Java Runtime Environment ou JRE est le progiciel contenant les applications nécessaires pour interpréter l’application Java et lui permettant de s’exécuter sur le système d’exploitation.
Le kit de développement Java ou JDK est une version Java du SDK plus traditionnel. C’est un progiciel qui contient les outils nécessaires pour écrire, compiler et déboguer des applications Java. Au-delà des applications de compilateur et de débogage, il existe d’autres outils permettant aux développeurs d’optimiser leurs programmes de manière à optimiser les performances et à utiliser moins de mémoire. Cela inclut l’application qui vérifie les conflits de fichiers jar, une autre qui vérifie la trace de la pile, un programme de lancement et un générateur d’en-tête et de stub parmi de nombreux autres outils.
Différence clé entre JDK, JRE et JVM
Pour comprendre la différence entre ces trois composants, considérons le diagramme suivant.
JRE = JVM + Java Class Library (JCL)
JDK = JRE + Java Development Tools (JDT)
JVM (Java Virtual Machine)
JVM est une machine abstraite. C’est ce qu’on appelle une machine virtuelle car elle n’existe pas physiquement. C’est une spécification qui fournit un environnement d’exécution dans lequel le bytecode Java peut être exécuté. Il peut également exécuter les programmes écrits dans d’autres langages et les compilés en bytecode Java.
Les machines virtuelles sont disponibles pour de nombreuses plates-formes matérielles et logicielles. JVM, JRE et JDK dépendent de la plate-forme car la configuration de chaque système d’exploitation est différente. Cependant, Java est indépendant de la plate-forme. Il existe trois notions du machine virtuelle Java: spécification, implémentation et instance.
La machine virtuelle Java effectue les tâches principales suivantes:
- Charge le code
- Vérifie le code
- Exécute le code
- Fournit l’environnement d’exécution
JRE (Java Runtime Environment)
JRE est un ensemble d’outils logiciels utilisés pour développer des applications Java. Il est utilisé pour fournir l’environnement d’exécution. C’est l’implémentation de JVM. Cela existe physiquement. Il contient un ensemble de bibliothèques et d’autres fichiers que JVM utilise au moment de l’exécution.
L’implémentation de JVM est également activement publiée par d’autres sociétés que Sun Micro Systems.
JDK (Java Development Kit)
Le kit de développement Java (JDK) est un environnement de développement logiciel utilisé pour développer des applications et des applets Java. Cela existe physiquement. Il contient JRE + development tools.
JDK est une implémentation de l’une des plates-formes Java indiquées ci-dessous, publiées par Oracle Corporation:
- Plateforme Java Standard Edition
- Plateforme Java Enterprise Edition
- Plateforme Java Micro Edition
Le JDK contient une machine virtuelle Java privée (JVM) et quelques autres ressources telles qu’un interpréteur / loader (java), un compilateur (javac), un archiveur (jar), un générateur de documentation (Javadoc), etc.
Conclusion
- JRE est nécessaire pour utiliser les applications Java, tandis que JDK est nécessaire pour créer des applications Java.
- JDK contient l’ensemble des éléments du JRE ainsi que les outils de développement.
- Les JRE sont disponibles pour une gamme de plates-formes beaucoup plus large que celle de JDK.
- Le JDK est destiné aux programmeurs et aux développeurs de logiciels, tandis que le JRE est destiné à l’utilisateur ordinaire.