Zusammen bilden das Java Development Kit (JDK), die Java Virtual Machine (JVM) und die Java Runtime Environment (JRE) eine mächtige Dreiergruppe von Java-Plattformkomponenten zur Entwicklung und Ausführung von Java-Anwendungen. Ich habe das JDK und die JVM bereits vorgestellt. In diesem kurzen Tutorial lernen Sie die JRE kennen, die die Laufzeitumgebung für Java ist.
Praktisch gesehen ist eine Laufzeitumgebung ein Stück Software, das dazu bestimmt ist, andere Software auszuführen. Als Laufzeitumgebung für Java enthält die JRE die Java-Klassenbibliotheken, den Java Class Loader und die Java Virtual Machine. In diesem System:
Der Class Loader ist für das korrekte Laden von Klassen und deren Verbindung mit den Java-Kernklassenbibliotheken verantwortlich.
Die JVM ist dafür verantwortlich, sicherzustellen, dass Java-Anwendungen über die Ressourcen verfügen, die sie benötigen, um in Ihrer Geräte- oder Cloud-Umgebung zu laufen und eine gute Leistung zu erbringen.
Die JRE ist hauptsächlich ein Container für diese anderen Komponenten und ist für die Orchestrierung ihrer Aktivitäten verantwortlich.
Wir werden in den folgenden Abschnitten viel tiefer gehen und untersuchen, wie diese Komponenten zusammenwirken.
Installation von JDK, JRE und JVM
Aus der Installationsperspektive wird jedes Mal, wenn Sie ein JDK herunterladen, eine versionskompatible JRE enthalten, und diese JRE wird eine Standard-JVM enthalten. Sie können die JRE auch separat vom JDK herunterladen, und Sie können aus einer Vielzahl von JVMs wählen. Standardeinstellungen funktionieren für die meisten Implementierungen gut, insbesondere wenn Sie mit Java beginnen.
Was ist eine Laufzeitumgebung?
Ein Softwareprogramm muss ausgeführt werden, und dazu benötigt es eine Umgebung, in der es ausgeführt werden kann. Die Laufzeitumgebung lädt Klassendateien und stellt sicher, dass es Zugriff auf Speicher und andere Systemressourcen gibt, um sie auszuführen. In der Vergangenheit verwendeten die meisten Softwareprogramme das Betriebssystem (OS) als Laufzeitumgebung. Das Programm lief auf jedem Computer, auf dem es sich befand, verließ sich aber für den Zugriff auf die Ressourcen auf die Einstellungen des Betriebssystems. Ressourcen wären in diesem Fall Dinge wie Speicher, Programmdateien und Abhängigkeiten. Die Java-Laufzeitumgebung änderte all das, zumindest für Java-Programme.
WORA für Java
Als es zuerst eingeführt wurde, galt Javas Prinzip “write once, run anywhere” als revolutionär, aber heute ist es als Norm für die meisten Softwaresysteme übernommen worden.
Die Java-Laufzeitumgebung
Wir können Software als eine Reihe von Schichten betrachten, die auf der Systemhardware sitzen. Jede Schicht stellt Dienste bereit, die von den darüber liegenden Schichten genutzt (und benötigt) werden. Die Java-Laufzeitumgebung ist eine Softwareschicht, die auf dem Betriebssystem eines Computers läuft und zusätzliche Java-spezifische Dienste bereitstellt.
Die JRE gleicht die Vielfalt der Betriebssysteme aus und stellt sicher, dass Java-Programme auf praktisch jedem Betriebssystem ohne Änderungen laufen können. Sie bietet auch Mehrwertdienste. Die automatische Speicherverwaltung ist einer der wichtigsten Dienste der JRE, die sicherstellt, dass Programmierer die Zuweisung und Neuzuweisung von Speicher nicht manuell steuern müssen.
Kurz gesagt, die JRE ist eine Art Meta-OS für Java-Programme. Es ist ein klassisches Beispiel für Abstraktion, bei dem das zugrunde liegende Betriebssystem zu einer konsistenten Plattform für die Ausführung von Java-Anwendungen abstrahiert wird.
[ Lernen Sie Java von den ersten Konzepten bis hin zu fortgeschrittenen Entwurfsmustern in diesem umfassenden 12-teiligen Kurs! ]
Wie die JRE mit der JVM zusammenarbeitet
Eine Java Virtual Machine ist ein laufendes Softwaresystem, das für die Ausführung von Live-Java-Programmen verantwortlich ist. Die JRE ist das System auf der Festplatte, das Ihren Java-Code aufnimmt, ihn mit den erforderlichen Bibliotheken kombiniert und die JVM startet, um ihn auszuführen.
Die JRE enthält Bibliotheken und Software, die Ihre Java-Programme zur Ausführung benötigen. Beispielsweise ist der Java Class Loader Teil der Java-Laufzeitumgebung. Dieser wichtige Teil der Software lädt kompilierten Java-Code in den Speicher und verbindet den Code mit den entsprechenden Java-Klassenbibliotheken.
In der eben beschriebenen Schichtdarstellung wird die JVM von der JRE erstellt. Aus einer Paketperspektive enthält die JRE die JVM, wie Abbildung 1 zeigt.