Was ist der Unterschied zwischen JVM , JDK , JRE & OpenJDK ?
Ich habe in Java programmiert und bin auf diese Ausdrücke gestoßen. Was sind die Unterschiede zwischen ihnen?
Was ist der Unterschied zwischen JVM , JDK , JRE & OpenJDK ?
Ich habe in Java programmiert und bin auf diese Ausdrücke gestoßen. Was sind die Unterschiede zwischen ihnen?
JDK (Java Development Kit) :
JRE (Java-Laufzeitumgebung)
Java Runtime Environment enthält JVM, Klassenbibliotheken und andere unterstützende Dateien. JRE ist für die Ausführung von Java-Dateien vorgesehen.
JVM (Virtuelle Java-Maschine)
Die JVM interpretiert den Bytecode in den Maschinencode je nach dem zugrunde liegenden Betriebssystem und der Hardwarekombination. Sie ist für all die Dinge wie Garbage Collection, Array Bounds Checking usw. verantwortlich. Die Java Virtual Machine bietet eine plattformunabhängige Möglichkeit zur Ausführung von Code.
JDK - Kompiliert java zu ByteCode. Besteht aus Debuggern, Compilern usw.
javac file.java // Is executed using JDK
JVM - Führt den Bytecode aus. JVM ist diejenige, die Java plattformunabhängig macht. Aber JVM variiert je nach Plattform.
JRE - JVM zusammen mit Java-Laufzeitbibliotheken zur Ausführung von Java-Programmen.
Hier sind die Beziehungen:
Referenz:
Java JDK, JRE und JVM
Java ist die Sprache, die eine strenge und stark typisierte Syntax enthält.
Java 2 Platform, Standard Edition, auch bekannt als J2SE, bezog sich auf die Plattform und umfasste unter anderem die Klassen in den Paketen java.lang und java.io. Es war der Baustein, auf dem Java-Anwendungen aufgebaut wurden.
Eine Java Virtual Machine (JVM) ist eine virtuelle Software-Maschine, die kompilierten Java-Code ausführt. Da kompilierter Java-Code lediglich Bytecode ist, ist die JVM für die Kompilierung dieses Bytecodes in Maschinencode verantwortlich, bevor er ausgeführt wird. (Dies wird oft als Just-in-Time-Compiler oder JIT-Compiler bezeichnet.) Die JVM kümmert sich auch um die Speicherverwaltung, so dass der Anwendungscode dies nicht tun muss.
Das Java Development Kit, kurz JDK, war und ist die Software, mit der Java-Entwickler Java-Anwendungen erstellen. Es enthält einen Java-Sprachcompiler, einen Dokumentationsgenerator, Tools für die Arbeit mit nativem Code und (normalerweise) den Java-Quellcode für die Plattform, um das Debuggen von Plattformklassen zu ermöglichen.
Die Java-Laufzeitumgebung (Java Runtime Environment, JRE) war und ist die Software, die Endbenutzer herunterladen, um kompilierte Java-Anwendungen auszuführen. Sie enthält eine JVM, aber keine der Entwicklungswerkzeuge, die im JDK gebündelt sind. Das JDK enthält jedoch eine JRE.
Ein weiterer erwähnenswerter Aspekt:
JDK (Java-Entwicklungskit)
Wie der Name schon sagt, werden Sie es für Entwicklungszwecke benötigen.
Ein Beispiel: Ein Softwareunternehmen wird JDK auf seinem Computer installieren lassen, weil es neue Software entwickeln muss, die auch die Kompilierung und Ausführung von Java-Programmen beinhaltet.
Wir können also sagen, dass JDK = JRE + JVM.
JRE (Java-Laufzeitumgebung)
Es wird zum Ausführen von Java-Programmen benötigt. Sie können damit keine Java-Programme kompilieren.
Ein Beispiel: Ein normaler Computerbenutzer, der einige Online-Spiele spielen möchte, benötigt JRE in seinem System, um Java-Programme auszuführen.
JVM (virtuelle Java-Maschine)
Wie Sie vielleicht wissen, führt es die Bytecodes aus. Es macht Java plattformunabhängig, denn es führt die .class
Datei, die Sie nach dem Kompilieren des Java-Programms erhalten, unabhängig davon, ob Sie es unter Windows, Mac oder Linux kompilieren.
JDK öffnen
Nun, wie ich oben sagte. Jetzt JDK wird von verschiedenen Unternehmen gemacht, einer von ihnen, die zufällig ein Open Source und frei für die öffentliche Nutzung ist OpenJDK, während einige andere sind Oracle Corporation's JRockit JDK oder IBM JDK.
Für den allgemeinen Benutzer mögen sie jedoch alle gleich aussehen.
Schlussfolgerung
Wenn Sie ein Java-Programmierer sind, benötigen Sie JDK in Ihrem System und dieses Paket enthält auch JRE und JVM, aber wenn Sie ein normaler Benutzer sind, der gerne Online-Spiele spielt, dann benötigen Sie nur JRE und dieses Paket enthält kein JDK.
Mit anderen Worten: JDK ist der Großvater, JRE der Vater und JVM der Sohn.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.