Menü

Freitag, 21. Februar 2014

Was ist der Unterschied zwischen JVM, JRE und JDK?

Beim Einstieg in die Java-Entwicklung wird man oft mit den Begriffen JVMJRE und JDK konfrontiert. In diesem Artikel möchte ich diese Begriffe genauer erklären.


JVM (Java Virtual Machine)

Die JVM ist Teil der JRE (Java Runtime Environment) und hat die Aufgabe den plattformunabhängigen Bytecode plattformabhängig auszuführen. Sie dient sozusagen als Schnittstelle zur Maschine und zum Betriebssystem.
Die Bytecode-Dateien (.class) werden von der JVM zur Laufzeit in die lokale Maschinensprache übersetzt. Für verschiedene Plattformen (Windows/Linux/Mac/...) gibt es unterschiedliche Implementierungen der JVM. Die verschiedenen Implementierungen kommunizieren mit verschiedenen Maschinen auf unterschiedlichen Wegen, bilden aber eine einheitliche virtuelle Umgebung.
Somit wird die Plattformunabhängigkeit erreicht, da das Java Programm nur mit der JVM kommunizieren muss.

Was ist Java?


Java ist eine objektorientierte Programmiersprache und eingetragene Marke des Unternehmens Sun Microsystems (seit 2010 Tochterunternehmen von Oracle) und wurde im Jahr 1995 veröffentlicht.
Die Programmiersprache ist Bestandteil der Java-Technologie, die grundsätzlich aus dem Java Development Kit (JDK) und der Java Runtime Environment (JRE) besteht.
Die in Java formulierten Programme liegen zunächst als von uns Menschen interpretierbarem Quellcode vor. Dieser Quellcode ist allerdings nicht direkt ausführbar, sondern muss zuvor vom Java-Compiler (Teil des JDK) in maschinenverständlichen Code (Bytecode) übersetzt werden.
Der Bytecode kann anschließend von der (virtuellen) Maschine - typischerweise der Java Virtual Machine (JVM) - ausgeführt werden. Zweck dieser Virtualisierung ist die Plattformunabhängigkeit. Das Programm kann somit auf jeder Plattform ausgeführt werden, auf der die entsprechende JRE installiert ist.