Was ist Java Runtime Environment (JRE)?

Menschen, die in einem geschäftigen Großraumbüro arbeiten

Was ist JRE?

Das Java Runtime Environment, oder JRE, ist eine Softwareschicht, die auf der Betriebssystemsoftware eines Computers läuft und die Klassenbibliotheken sowie andere Ressourcen bereitstellt, die ein bestimmtes Java-Programm zur Ausführung benötigt.

Das JRE ist eine von drei miteinander verbundenen Komponenten zur Entwicklung und Ausführung von Java-Programmen. Die beiden anderen Komponenten sind folgende:

  • Das Java Development Kit, oder JDK, ist eine Reihe von Tools zur Entwicklung von Java-Anwendungen. Entwickler wählen JDKs nach Java-Version und nach Paketen oder Editionen – Java Enterprise Edition (Java EE), Java Special Edition (Java SE) oder Java Mobile Edition (Java ME). Jedes JDK enthält immer ein kompatibles JRE, da die Ausführung eines Java-Programms Teil des Entwicklungsprozesses ist.

  • Java virtuelle Maschinen, oder JVM, führen Java-Anwendungen live aus. Jede JRE enthält eine Standard-JRE, Entwickler können aber auch eine andere wählen, die den spezifischen Ressourcenanforderungen ihrer Anwendungen entspricht.

Die JRE kombiniert den mit dem JDK erstellten Java-Code mit den notwendigen Bibliotheken, die für die Ausführung auf einer JVM erforderlich sind, und erstellt dann eine Instanz der JVM, die das resultierende Programm ausführt. JVMs sind für mehrere Betriebssysteme verfügbar, und Programme, die mit dem JRE erstellt wurden, laufen auf all diesen. Auf diese Weise ermöglicht das Java Runtime Environment, dass ein Java-Programm ohne Änderungen auf jedem Betriebssystem ausgeführt werden kann.

Sie können das JDK, einschließlich einer kompatiblen JRE, von Oracle herunterladen.

Wie funktioniert JRE?

JDK und JRE interagieren miteinander, um eine nachhaltige Laufzeitumgebung zu schaffen, die die nahtlose Ausführung von Java-basierten Anwendungen auf praktisch jedem Betriebssystem ermöglicht. Diese Attribute bilden die JRE-Runtime-Architektur:

ClassLoader

Der Java ClassLoader lädt dynamisch alle Klassen, die zum Ausführen eines Java-Programms erforderlich sind. Da Java-Klassen nur dann in den Speicher geladen werden, wenn sie benötigt werden, nutzt das JRE ClassLoaders, um diesen Prozess bei Bedarf zu automatisieren.

Bytecode-Prüfer

Der Bytecode-Verifier stellt das Format und die Genauigkeit des Java-Codes sicher, bevor er an den Interpreter weitergegeben wird. Wenn Code die Systemintegrität oder Zugriffsrechte verletzt, gilt die Klasse als beschädigt und wird nicht geladen.

Interpreter

Nachdem der Bytecode erfolgreich geladen wurde, erstellt der Java-Interpreter eine Instanz der JVM, mit der das Java-Programm nativ auf dem zugrunde liegenden Rechner ausgeführt werden kann.

Woraus besteht JRE?

Neben der Java Virtual Machine besteht JRE aus verschiedenen anderen unterstützenden Softwaretools und Funktionen, mit denen Sie das Beste aus Ihren Java-Anwendungen als virtuelle Maschinen herausholen können.

Bereitstellungslösungen

Teil der JRE-Installation sind Bereitstellungstechnologien wie Java Web Start und Java-Plug-in, die die Aktivierung von Anwendungen vereinfachen und fortschrittlichen Support für zukünftige Java-Updates bieten.

Entwicklungs-Toolkits

Das JRE enthält außerdem Toolkits, die Entwicklern helfen sollen, ihre Benutzeroberfläche zu verbessern. Zu diesen Toolkits gehören unter anderem:

  • Java 2D: Eine Programmierschnittstelle (API), die zum Zeichnen zweidimensionaler Grafiken in der Java-Sprache verwendet wird. Entwickler können umfangreiche Benutzeroberflächen, Spezialeffekte, Spiele und Animationen erstellen.

  • Abstract Window Toolkit (AWT): Eine grafische Benutzeroberfläche (GUI), die zum Erstellen von Objekten, Schaltflächen, Scrollleisten und Fenstern verwendet wird.

  • Swing: Eine weitere schlanke GUI, die eine Vielzahl von Widgets für flexible Anpassungen verwendet.

Integrationsbibliothek

Das Java Runtime Environment bietet mehrere Integrationsbibliotheken, die Entwickler bei der Erstellung nahtloser Datenverbindungen zwischen ihren Anwendungen und Diensten unterstützen. Zu diesen Bibliotheken gehören unter anderem:

  • Java IDL (CORBA): Verwendet die Common Object Request Architecture, um verteilte Objekte zu unterstützen, die in der Programmiersprache Java geschrieben sind.

  • Java Database Connectivity (JDBC) API: Bietet Entwicklern Tools zum Schreiben von Anwendungen mit Zugriff auf entfernte Beziehungsdatenbanken, Flat Files und Spreadsheets.

  • Java Naming and Directory Interface (JNDI): Eine Programmierschnittstelle mit Verzeichnisdienst, die Clients dabei unterstützt, portable Anwendungen zu erstellen, die Informationen aus Datenbanken mithilfe von Namenskonventionen abrufen können.

Sprach- und Dienstprogrammbibliotheken

Im JRE enthalten sind java.lang. und java.util. Pakete, die für das Design von Java-Anwendungen, die Versionskontrolle, Verwaltung und Überwachung von Paketen erforderlich sind. Einige dieser Pakete beinhalten:

  • Collections Framework: Eine einheitliche Architektur, die aus einer Sammlung von Schnittstellen besteht, die darauf ausgelegt sind, den Speicher und den Prozess von Anwendungsdaten zu verbessern.

  • Concurrency Utilities: Ein leistungsstarkes Framework-Paket mit leistungsstarkem Threading-Dienstprogramm.

  • Preferences API: Eine leichte, plattformübergreifende, beständige API, die es mehreren Nutzern am selben Computer ermöglicht, ihre eigene Gruppe von Anwendungspräferenzen zu definieren.

  • Logging: Ein Paket, das Protokollberichte – wie Sicherheitsfehler, Konfigurationsfehler und Leistungsprobleme – für weitere Analysen erstellt.

  • Java Archive (JAR): Ein plattformunabhängiges Dateiformat, mit dem mehrere Dateien im JAR-Format gebündelt werden können, was die Download-Geschwindigkeit erheblich verbessert und die Dateigröße reduziert.