374 votes

Quelle est la différence entre la machine virtuelle Java, JDK, JRE & OpenJDK ?

Quelle est la différence entre la machine virtuelle Java, JDK, JRE et OpenJDK?

J’ai été programmation en Java et j’ai rencontré ces phrases, quelles sont les différences entre eux ?

403voto

alain.janinm Points 7597

JVM

La machine Virtuelle Java (JVM) est la machine virtuelle qui exécuter le bytecode Java. La JVM ne comprends pas Java faute de frappe, c'est pourquoi vous compilez votre *.java fichiers pour obtenir de l' *.class fichiers contenant le bytecode compréhensible par la JVM. C'est aussi l'entité qui permet à Java pour être un "langage portable" (écrire une fois, exécuter partout). En effet, il existe des implémentations spécifiques de la JVM pour les différents systèmes (Windows, Linux, MacOS, voir l'article sur wikipedia: liste..), l'objectif est que, avec le même bytecode ils donnent tous les mêmes résultats.

JDK et JRE

Pour expliquer la différence entre les JDK et JRE, le mieux est de lire la documentation d'Oracle et de consulter le schéma :

Java Runtime Environment (JRE) L'Environnement d'Exécution Java (JRE) fournit les bibliothèques, la Machine Virtuelle Java, et d'autres composants à l'exécution d'applets et des applications écrites dans le langage de programmation Java. En outre, les deux principales technologies de déploiement font partie de la JRE: Java Plug-in, qui permet aux applets de courir dans les navigateurs populaires; et Java Web Start, qui déploie des applications autonomes sur un réseau. C'est aussi la fondation pour les technologies Java 2 Platform, Enterprise Edition (J2EE) pour les logiciels d'entreprise de développement et de déploiement. Le JRE ne pas contenir des outils et des utilitaires tels que les compilateurs ou les débogueurs pour le développement des applications et des applets.


Le Kit de Développement Java (JDK) Le JDK est un sur-ensemble de la JRE, et contient tout ce qui est dans le JRE, ainsi que des outils tels que les compilateurs et les débogueurs nécessaires pour développer des applications et des applets.

Notez que Oracle n'est pas le seul à fournir un JDK.

OpenJDK

L' OpenJDK est de l'open-source de la mise en œuvre de la version Java SE 7 JSR (JSR 336). Maintenant, il n'y a presque pas de différence entre l'Oracle JDK et de l'OpenJDK. L'an dernier, Oracle a pris cette décision : Le déplacement à OpenJDK officiel de Java SE 7 Implémentation de Référence

Les différences sont de l'état dans ce blog :

Q: Quelle est la différence entre le code source disponible dans le OpenJDK référentiel, et le code que vous utilisez pour construire l'Oracle JDK?

Un: Il est très proche de notre processus de construction pour Oracle JDK rejets s'appuie sur OpenJDK 7 en ajoutant juste un couple de morceaux, comme le déploiement de code, qui comprend l'Oracle de la mise en œuvre du Plugin Java et Java web start, ainsi que quelques fermé source de composants tiers comme un graphique rasterizer, open source, troisième partie les composants, comme les Rhinocéros, et quelques morceaux ici et là, comme des documents supplémentaires ou des polices tiers. Aller de l'avant, notre intention est d'ouvrir la source de tous les morceaux de l'Oracle JDK à l'exception de ceux que nous considérons comme le commercial des fonctionnalités telles que JRockit de Contrôle de Mission (pas encore disponible dans Oracle JDK), et de remplacer grevé tiers des composants open source solutions pour atteindre plus proche de la parité entre les bases de code.

Selon la version, les VM peuvent différer : la Correspondance entre la Sun/Oracle JDK, OpenJDK et HotSpot VM versions

109voto

hvgotcodes Points 55375

``est Java Virtual Machine--la JVM va effectivement le bytecode Java.

``est Java Developer Kit--le JDK est ce que vous devez compiler le code source Java

``Java Runtime Environment n’est - ce que vous voulez exécuter un programme java--il contient une JVM, entre autres choses.

OpenJDK est une implémentation spécifique de JDK.

52voto

user25226 Points 147

JDK (Java Development Kit)

Java Developer Kit contient les outils nécessaires pour développer les programmes Java, et JRE afin d'exécuter les programmes. Les outils comprennent un compilateur (javac.exe), Java lanceur d'application (java.exe), Appletviewer, etc...

Compilateur convertit en code java en code octet. Java de lancement de l'application s'ouvre un JRE, les charges de la classe, et appelle sa méthode principale.

Vous avez besoin du JDK, si vous voulez écrire vos propres programmes, et de les compiler. Pour l'exécution de programmes java, JRE est suffisant.

JRE est ciblée pour l'exécution de fichiers Java

c'est à dire JRE = JVM + Packages Java Classes(comme util, mathématiques, lang, awt,swing, etc)+les bibliothèques.

JDK est principalement ciblé pour le développement java. I. e. Vous pouvez créer un fichier Java (avec l'aide de paquets Java), compiler un fichier Java et d'exécuter un fichier java.

JRE (Java Runtime Environnement)

L'Environnement d'Exécution Java contient de la JVM, les bibliothèques de classes, et d'autres fichiers de support. Il ne contient pas tous les outils de développement tels que le compilateur, débogueur, etc. En fait JVM exécute le programme, et il utilise les bibliothèques de classes, et d'autres fichiers de support fourni dans le JRE. Si vous souhaitez exécuter n'importe quel programme java, vous devez avoir JRE installé dans le système

La Machine Virtuelle Java fournit une plate-forme indépendante de l'exécution de code; Que dire de compiler une fois dans n'importe quelle machine et exécuter n'importe où(tout type de machine).

JVM (Java Virtual Machine)

Comme nous en sommes tous conscients, quand on compile un fichier Java, la sortie n'est pas un " exe "mais c'est un".la classe de fichier. ‘.la classe de fichier se compose de Java octets de codes qui sont compréhensibles par la JVM. La Machine Virtuelle Java interprète le byte code dans le code de l'ordinateur en fonction du système d'exploitation et du matériel de combinaison. Il est responsable de toutes les choses que comme la collecte des ordures, de la matrice de vérification des limites, etc... JVM est dépendants de la plateforme.

La JVM est appelé "virtuel", car il fournit une interface machine qui ne dépend pas du système d'exploitation de la machine et de l'architecture matérielle. Cette indépendance, de matériel et de système d'exploitation est une pierre angulaire de l'écriture, à la fois de l'exécution de n'importe où de la valeur des programmes Java.

Il existe différentes JVM implémentations sont là. Ceux-ci peuvent varier dans des choses comme la performance, de fiabilité, de vitesse, etc. Ces implémentations diffèrent dans ces zones où la spécification de Java ne parle pas de la façon de mettre en œuvre les fonctionnalités, comme la façon dont la collecte des ordures processus est dépendante de la JVM, Java spec ne pas définir de manière spécifique pour ce faire.

25voto

nidhin Points 2086

Une machine virtuelle Java (JVM) est une machine virtuelle qui peut exécuter le bytecode Java. C'est l'exécution de code composant du logiciel Java plate-forme.

Le Kit de Développement Java (JDK) est un Oracle Corporation produit destiné à des développeurs Java. Depuis l'introduction de Java, il a été de loin le plus largement utilisé Java Kit de Développement Logiciel (SDK).

Java Runtime Environment, est également appelé Java Runtime, Runtime Environment

OpenJDK (Ouvrir le Kit de Développement Java) est un libre et open source, mise en œuvre du langage de programmation Java. Il est le résultat d'un effort Sun Microsystems a commencé en 2006. La mise en œuvre est sous licence GNU General Public License (GPL) avec un lien d'exception.

16voto

A_BOSS Points 51

Il vous suffit de:

JDK (Java Development Kit) :

  • contient les outils nécessaires pour développer les programmes Java.
  • Vous avez besoin du JDK, si vous voulez écrire vos propres programmes, et de les compiler.
  • JDK est principalement ciblé pour le développement java.

JRE (Java Runtime Environnement)

L'Environnement d'Exécution Java contient de la JVM, les bibliothèques de classes, et d'autres fichiers de support. JRE est ciblée pour l'exécution de fichiers Java.

JVM (Java Virtual Machine)

La JVM interprète le byte code dans le code de l'ordinateur en fonction du système d'exploitation et du matériel de combinaison. Il est responsable de toutes les choses que comme la collecte des ordures, de la matrice de vérification des limites, etc... de la Machine Virtuelle Java fournit une plate-forme indépendante de l'exécution du code.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X