Quelle est la différence entre JVM, JDK, JRE & OpenJDK?

Quelle est la différence entre JVM , JDK , JRE & OpenJDK ?

je programmais en Java et j'ai rencontré ces phrases, quelles sont les différences entre elles?

280
demandé sur naXa 2012-07-18 21:56:11

18 réponses

JVM

Le machine Virtuelle Java (JVM) est la machine virtuelle qui exécute le bytecode Java. La JVM ne comprend pas le code source Java, c'est pourquoi vous compilez vos fichiers *.java pour obtenir les fichiers *.class qui contiennent les bytecodes compris 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 différents systèmes (Windows, Linux, MacOS, voir la liste Wikipedia ), le but est qu'avec les mêmes bytecodes ils donnent tous les mêmes résultats.

JDK et JRE

pour expliquer la différence entre JDK et JRE, le mieux est de lire la Oracle documentation et de consulter le diagramme:

Java Runtime Environment (JRE)

L'environnement Java Runtime (JRE) fournit les bibliothèques, la machine virtuelle Java et d'autres composants pour exécuter des applets et des applications écrites dans le langage de programmation Java. En outre, deux technologies de déploiement clés font partie de la JRE: Java Plug-in, qui permet aux applets de fonctionner avec des navigateurs populaires, et Java Web Start, qui déploie des applications autonomes sur un réseau. Il est également à la base des technologies de la plate-forme Java 2, Enterprise Edition (J2EE) pour le développement et le déploiement de logiciels d'entreprise. Le JRE ne contient pas d'outils et d'utilitaires tels que des compilateurs ou des débogueurs pour le développement d'applets et d'applications.


Kit de Développement Java (JDK)

le JDK est un superset du JRE, et contient tout ce qui est dans le JRE, plus les outils tels que les compilateurs et les débogueurs nécessaires pour développer des applets et des applications.

notez Qu'Oracle n'est pas le seul à fournir des JDK.

OpenJDK

le "OpenJDK est l'implémentation open-source du Java SE 7 JSR ( JSR 336 ). Maintenant, il n'y a presque aucune différence entre L'Oracle JDK et L'OpenJDK. L'an dernier, Oracle a pris cette décision : le passage à l' OpenJDK officiel de Java SE 7 Implémentation de Référence

les différences sont indiquées dans ce blog :

Q: Quelle est la différence entre le code source trouvé dans le dépôt OpenJDK et le code que vous utilisez pour construire L'Oracle JDK?

A: c'est très proche - notre processus de construction pour les versions D'Oracle JDK s'appuie sur OpenJDK 7 en ajoutant seulement quelques pièces, comme le code de déploiement, qui inclut la mise en œuvre D'Oracle du Plugin Java et Java WebStart, ainsi que certains composants tiers source fermé comme un rasterizer graphique, certains composants tiers open source, comme Rhino, et quelques bits et pièces ici et là, comme la documentation supplémentaire ou les polices tiers. Pour aller de l'avant, notre intention est d'ouvrir toutes les pièces de L'Oracle JDK à l'exception de ceux que nous considérons comme des fonctionnalités commerciales telles que JRockit Mission Control (pas encore disponible dans Oracle JDK), et remplacer les composants tiers grevés par des alternatives open source afin d'atteindre une plus grande parité entre les bases de code.

en fonction de la version utilisée, la VM peut différer: Correspondance entre Sun / Oracle JDK, OpenJDK et HotSpot VM versions

323
répondu alain.janinm 2018-05-28 12:40:29
  • JVM Java Virtual Machine-la machine exécute le bytecode Java.
  • JDK est Java Developer Kit -- le JDK est ce dont vous avez besoin pour compiler du code source Java.
  • JRE est Java Runtime Environment -- est ce dont vous avez besoin pour exécuter un programme Java et contient une JVM, entre autres choses.

OpenJDK est un JDK mise en œuvre.

76
répondu hvgotcodes 2015-11-09 22:57:08

JDK (Java Development Kit)

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

Le compilateur

convertit le code java en code octet. Java application launcher ouvre un JRE, charge la classe, et invoque sa méthode principale.

vous avez besoin de JDK, si tant est qu'il y en ait vous voulez écrire vos propres programmes, et de les compiler. Pour exécuter des 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 destiné au développement java. I. e. Vous pouvez créer un fichier Java (avec l'aide de paquets Java), compiler un fichier Java et exécuter java fichier.

JRE (Java Runtime Environment)

Java Runtime Environment contient JVM, des bibliothèques de classe et d'autres fichiers de support. Il ne contient aucun outil de développement tel que compilateur, débogueur, etc. En fait JVM exécute le programme, et il utilise les bibliothèques de classe, et d'autres fichiers de soutien fournis dans JRE. Si vous souhaitez exécuter n'importe quel programme java, vous devez avoir JRE installé dans le système

le La machine virtuelle Java fournit une façon d'exécuter du code indépendante de la plate-forme; Cela signifie compiler une fois dans n'importe quelle machine et l'exécuter n'importe où(n'importe quelle machine).

JVM (Java Virtual Machine)

comme nous le savons tous quand nous compilons un fichier Java, la sortie n'est pas un ‘exe’ mais un ‘a.la classe de fichier. ‘.le fichier de classe se compose de codes de byte Java qui sont compréhensibles par JVM. La machine virtuelle Java interprète le code octet dans le code machine en fonction du système d'exploitation sous-jacent et de la combinaison matérielle. Il est responsable de toutes les choses comme la collecte des ordures, la vérification des limites des réseaux, etc... JVM dépend de la plate-forme.

la JVM est appelée" virtuelle " parce qu'elle fournit une interface machine qui ne dépend pas du système d'exploitation sous-jacent et de l'architecture matérielle de la machine. Cette indépendance vis-à-vis du matériel et du système d'exploitation est la pierre angulaire de la valeur d'écriture-une fois exécutable-anywhere de Java. programme.

il existe différentes implémentations JVM. Celles-ci peuvent différer sur des points tels que la performance, la fiabilité, la vitesse, etc. Ces implémentations seront différentes dans les domaines où les spécifications Java ne mentionnent pas la façon d'implémenter les fonctionnalités, comme la façon dont le processus de collecte des déchets fonctionne dépend de JVM, Java spec ne définit aucune façon spécifique de le faire.

44
répondu user25226 2013-06-14 03:42:16

Un de la machine virtuelle Java (JVM) est une machine virtuelle qui peut exécuter le bytecode Java. C'est le composant d'exécution de code de la plate-forme logicielle Java.

le Java Development Kit (JDK) est un produit D'Oracle Corporation destiné aux 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 Environnement , est également appelé L'environnement Java Runtime, Runtime

OpenJDK (Open Java Development Kit) est une implémentation libre et open source du langage de programmation Java. Elle est le résultat d'un effort entrepris par Sun Microsystems en 2006. L'implémentation est sous licence GNU GPL (GNU General Public License) avec une exception de lien.

22
répondu nidhin 2013-12-12 11:41:28

simplement:

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 destiné au développement java.

JRE (Java Runtime De l'environnement)

Java Runtime Environment contient JVM, des bibliothèques de classe et d'autres fichiers de support. JRE est destiné à l'exécution de fichiers Java.

JVM (Java Virtual Machine)

la JVM interprète le code octet dans le code machine en fonction du système d'exploitation sous-jacent et de la combinaison matérielle. Il est responsable de toutes les choses que comme la collecte des ordures, tableau vérification des limites, etc... La machine virtuelle Java fournit une façon d'exécuter du code indépendante de la plate-forme.

15
répondu A_BOSS 2014-06-03 10:35:21

JVM est la machine virtuelle Java code exécute sur

JRE est l'environnement (norme bibliothèques et de la JVM) nécessaires pour exécuter des applications Java

JDK est le JRE avec les outils de développement et de documentation

OpenJDK est une version open-source de la JDK, contrairement à la JDK commune détenue par Oracle

12
répondu Garrett Hall 2012-07-18 18:01:22

JDK - Compile de java Byte Code. Se compose de débogueurs, compilateurs, etc.

javac file.java // Is executed using JDK

JVM - exécute le code octet. JVM est celui qui rend la plate-forme java indépendante. Mais JVM varie pour les plates-formes.

JRE - JVM avec les bibliothèques Java runtime pour exécuter des programmes java.

6
répondu bharanitharan 2018-05-19 00:09:48

un autre aspect digne d'être mentionné:

JDK (java development kit)

vous en aurez besoin pour le développement comme le suggère le nom.

par exemple: une société de logiciel aura JDK installer dans son ordinateur parce qu'ils auront besoin de développer un nouveau logiciel qui implique la compilation et l'exécution de leurs programmes Java aussi bien.

donc on peut dire que JDK = JRE + JVM.

JRE (environnement d'exécution java)

il est nécessaire d'exécuter des programmes Java. Vous ne pouvez pas compiler des programmes Java .

par exemple: un utilisateur régulier d'ordinateur qui veut exécuter des jeux en ligne alors aura besoin de JRE dans son système pour exécuter des programmes Java.

jvm (java virtual machine)

comme vous le savez peut-être, il exécute les bytecodes. Il La plateforme Java est indépendante parce qu'elle exécute le fichier .class que vous obtenez après avoir compilé le programme Java, que vous le compiliez sous Windows, Mac ou Linux.

Open JDK

comme je l'ai dit plus haut. Maintenant JDK est fait par une autre société, l'un d'eux qui se trouve être un open source et libre pour l'usage public est OpenJDK, tandis que d'autres sont JRockit JDK D'Oracle Corporation ou IBM JDK.

cependant, ils peuvent tous apparaître les mêmes à l'utilisateur général.

Conclusion

si vous êtes un programmeur Java, vous aurez besoin de JDK dans votre système et ce paquet comprendra JRE et JVM, mais si vous êtes un utilisateur normal qui aime jouer à des jeux en ligne, alors vous n'aurez besoin que de JRE et ce paquet n'aura pas JDK.

en d'autres termes JDK est grand-père JRE est père et JVM est leur fils.

4
répondu Mrinal 2013-05-03 20:52:56

JRE - signifie Java run-time et il est nécessaire d'exécuter L'application Java.

JDK - signifie Java development kit et fournit des outils pour développer le programme Java, par exemple Java compiler. Il contient également du JRE.

JVM - signifie machine virtuelle Java et c'est le processus responsable de L'exécution de L'application Java.

JIT - signifie Juste dans la compilation de temps et aide à stimuler la performance de L'application Java en convertissant le code de byte Java en code natif lorsque le seuil franchi certain i.e. principalement le code chaud est converti en code natif.

4
répondu roottraveller 2017-07-10 11:21:58

Java est le langage et inclut une syntaxe stricte et fortement dactylographiée avec laquelle vous devriez être très familier maintenant.

Java 2 Platform, Standard Edition, également connu sous le nom de J2SE, fait référence à la plate-forme et inclus les classes dans le java.lang et de java.io paquets, entre autres. C'était l'élément de construction sur lequel les applications Java ont été construites.

une Machine virtuelle Java, ou JVM, est une machine virtuelle logicielle qui exécute Java compilé code. Comme le code Java compilé est simplement bytecode, la JVM est responsable de compiler ce bytecode en code machine avant de l'exécuter. (On l'appelle souvent le compilateur juste à temps ou le compilateur JIT.) La JVM s'occupe également de la gestion de la mémoire afin que le code d'application n'ait pas à le faire.

le Java Development Kit, ou JDK, était et reste la pièce de logiciels que les développeurs Java utilisent pour créer des applications Java. Il contient un compilateur de langage Java, une documentation générateur, des outils pour travailler avec du code natif, et (généralement) le code source Java pour la plate-forme pour permettre le débogage, les classes de la plateforme.

L'environnement Java Runtime, ou JRE, était et reste l'élément de logiciel que les utilisateurs finaux téléchargent pour exécuter des applications Java compilées. Il comprend une JVM mais ne contient aucun des outils de développement inclus dans la JDK. Le JDK, cependant, contient un JRE.

3
répondu Koray Tugay 2014-07-16 17:07:51

en termes simples:

JVM: spécification décrivant la manière/les ressources d'exécuter un programme java. Exécute en fait le code octet et rend la plate-forme java indépendante. Ce faisant, il est différent pour une plate-forme différente. JVM pour windows ne peut pas fonctionner comme JVM pour UNIX.

JRE : la mise en Œuvre de la JVM. (JVM + temps d'exécution bibliothèques)

JDK : JRE + java compiler et autres outils essentiels pour construire un programme java à partir de zéro

3
répondu user2807418 2017-11-27 03:56:25

JVM : il s'agit en fait de l'interpréteur de code octet .Il dépend de la plate-forme. Par exemple: dans la plate-forme Windows le ' java.exe 'ou javaw.exe " precess est le procédé jvm.

JDK : est une boîte à outils contenant les bibliothèques et les utilitaires nécessaires pour développer et exécuter un programme/une application java

JRE : est le environnement d'exécution pour une application java.c'est-à-dire qu'il ne supporte que les dépendances d'exécution incluant jvm pour le programme compilé. Si nous voulons compiler un programme java, nous avons besoin du jdk.

2
répondu Tom Sebastian 2013-10-10 09:15:50

JVM : la machine virtuelle de java. indique à la machine ce qu'elle doit faire avec le code Java. Vous ne pouvez pas télécharger JVM tel quel. Il est emballé dans un autre composant.

JRE: une autre composante mentionnée ci-dessus est la JRE. C'est la JVM+ autres pots pour créer runtime environmeny

JDK: contient JRE (qui à son tour contient JVM). Une fois que vous avez JDK, vous n'avez pas besoin d'installer JRE et JVM séparément. Il contient compilateur compile votre .les fichiers java .classe dossiers

2
répondu Jain 2017-01-15 11:02:50

JVM

JVM (Java Virtual Machine) est une machine abstraite. Il s'agit d'une spécification qui fournit un environnement d'exécution dans lequel java bytecode peut être exécuté. Les JVM sont disponibles pour de nombreuses plateformes matérielles et logicielles.

JRE

JRE est un acronyme de Java Runtime Environment.Il est utilisé pour fournir un environnement d'exécution.Il s'agit de la mise en œuvre de la JVM.Sur le plan physique existe.Il contient un ensemble de bibliothèques + d'autres fichiers que JVM utilise à l'exécution.

JDK

JDK est l'acronyme de Java Development Kit.Il existe physiquement.Il contient des outils de développement JRE+.

lien: - http://www.javatpoint.com/difference-between-jdk-jre-and-jvm

2
répondu Nikhil Kumar 2017-11-27 03:55:05

JRE exécute l'application mais JVM lit les instructions ligne par ligne donc c'est l'interpréteur.

JDK =JRE+Development Tools

JRE =JVM+Library Classes

1
répondu KIBOU Hassan 2017-11-27 03:55:27

JVM Java Virtual Machine , exécute en fait le bytecode java. C'est le bloc d'exécution sur la plate-forme JAVA. Il convertit le bytecode en code machine.

JRE Java Runtime Environnement de , fournit la configuration minimale requise pour l'exécution d'une application Java; il se compose de la Machine Virtuelle Java (JVM), des classes de base, et les fichiers de prise en charge.

JDK Java Kit de développement, il a tous les outils pour développer votre logiciel d'application. C'est comme JRE+JVM

Open JDK est une implémentation libre et open source de la plate-forme Java.

0
répondu Ankur Anandapu 2014-10-25 07:12:09

en termes simples: - JDK = JRE + outils de développement/débogage , où JDK est notre paquet complet pour travailler avec Java, de la création de la compilation à son exécution.D'un autre côté, JRE ne fait qu'exécuter du code(Byte Code).

Note: - que nous installions JDK ou JRE, JVM serait livré avec les deux paquets et JVM est la partie où le compilateur JIT convertit le code octet en code propre à la machine.

juste lire l'article sur JDK, JRE, JVM et JIT

0
répondu AugustRush 2015-02-11 15:40:12

JDK : le paquet complet dont vous avez besoin pour écrire et exécuter du code java

OpenJDK : Un organisme indépendant de la mise en œuvre de JDK pour faire beaucoup mieux

JVM : convertit le code Java en bytecode et fournit les spécifications qui indiquent comment un code Java doit être compilé, chargé, vérifié, vérifié pour les erreurs et exécuté.

JRE : implémentation de la JVM avec laquelle certaines bibliothèques Java sont utilisées pour exécuter le programme

0
répondu dhirwan 2016-08-24 11:49:56