Java ist eine der beliebtesten Programmiersprachen, die heute in Entwicklungsumgebungen verwendet werden. Es wird hauptsächlich für Backend-Entwicklungsprojekte, Spieleentwicklung sowie Desktop- und Mobilcomputing verwendet. Lesen Sie weiter und finden Sie heraus, wie Java Virtual Machine (JVM), Java Runtime Environment (JRE) und Java Development Kit (JDK) jeweils eine Rolle im Java-Entwicklungsprozess spielen. Sie werden auch etwas über ihre Beziehung zueinander erfahren, sowie über die Unterschiede, die sie auszeichnen.
Java Virtual Machine, oder JVM, lädt, verfiziert und führt Java-Bytecode aus. Es wird als Interpreter oder Kern der Java-Programmiersprache bezeichnet, weil er Java-Programme ausführt.
JVM ist für die Umwandlung von Bytecode in maschinenspezifischen Code zuständig und ist sowohl im JDK als auch im JRE erforderlich. Es ist außerdem plattformabhängig und erfüllt viele Funktionen, einschließlich Speicherverwaltung und Sicherheit. Darüber hinaus kann JVM Programme ausführen, die in anderen Programmiersprachen geschrieben sind, die in Java-Bytecode konvertiert wurden.
Java Native Interface (JNI) wird oft im Zusammenhang mit JVM genannt. JNI ist ein Programmier-Framework, das es Java-Code, der in JVM ausgeführt wird, ermöglicht, mit Anwendungen zu kommunizieren (d. h. von ihnen aufzurufen und von diesen aufgerufen zu werden), die mit einer Hardware und einer bestimmten Betriebssystemplattform verbunden sind. Diese Anwendungen werden als native Anwendungen bezeichnet und können oft in anderen Sprachen geschrieben werden. Native Methoden werden verwendet, um nativen Code, der in anderen Sprachen geschrieben ist, in eine Java-Anwendung zu verschieben.
JVM besteht aus drei Hauptkomponenten bzw. Subsystemen:
Java Runtime Environment, oder JRE, ist eine Reihe von Software-Tools, die für die Ausführung des Java-Programms oder der Anwendung auf Ihrem System verantwortlich sind.
JRE verwendet Heapspeicher für die dynamische Speicherzuweisung für Java-Objekte. JRE wird auch in JDB (Java Debugging) verwendet.
Wenn ein Programmierer ein Java-Programm mit dem Java-Befehl ausführen möchte, sollte er JRE installieren. Wenn er nur installieren möchte (und keinen Code entwickeln oder kompilieren), ist nur JRE erforderlich.
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.
Java Development Kit (JDK) ist ein Software-Development-Kit, das eine Obermenge von JRE darstellt. Es ist die grundlegende Komponente, die Entwicklung von Java-Anwendungen und Java-Applets ermöglicht. Es ist plattformspezifisch, sodass für jedes Betriebssystem (z. B. Mac, Unix und Windows) separate Installationsprogramme erforderlich sind.
JDK enthält alle Tools, die zum Kompilieren, Debuggen und Ausführen eines mit der Java-Plattform entwickelten Programms erforderlich sind. (Es ist erwähnenswert, dass Java-Programme auch über die Befehlszeile ausgeführt werden können.)
Das JDK enthält alle Java-Tools, ausführbaren Dateien und Binärdateien, die zum Ausführen von Java-Programmen erforderlich sind. Dazu gehören JRE, ein Compiler, ein Debugger, ein Archiver und andere Tools, die bei der Java-Entwicklung verwendet werden.
Java ist ein Synonym für Java Standard Edition (Java SE) oder Core Java. Alle drei Euphemismen beziehen sich auf die grundlegende Java-Spezifikation, die Definition von Typen und Objekten beinhaltet. Java EE hingegen stellt APIs bereit und wird in der Regel zur Ausführung größerer Anwendungen verwendet. Der Inhalt dieses Blogs konzentriert sich auf Java SE.
Schauen wir uns zunächst an, wie die drei Kernkomponenten von Java zusammenarbeiten, und untersuchen dann die Unterschiede. Das folgende Diagramm zeigt, wie JVM, JRE und JDK in der Java-Umgebung zusammenhängen.
Wenn Sie sich einen aufgeschnittenen Baseball vorstellen, enthält er drei Hauptkomponenten: den runden, gefüllten Kern, den Mittelteil aus Woll- und Baumwolle sowie die Oberfläche aus Rindsleder. Ein Ball ohne alle drei Schichten wird seine beabsichtigte Funktion nicht erfüllen. Ähnlich wie die drei grundlegenden Teile eines Puzzles haben JVM, JRE und JDK alle spezifische Funktionen. Ohne alle drei wird Java nicht erfolgreich arbeiten.
Im folgenden Video erklärt Jamil Spain weiter, wie JRE und JDK zusammenhängen:
Und nun zu den Unterschieden:
Es gibt viele ergänzende Technologien, die zur Verbesserung von JVM, JRE oder JDK verwendet werden können. Die folgenden Technologien gehören zu den am häufigsten verwendeten:
Java Virtual Machine (JVM) wird verwendet, um – Sie haben es erraten – virtuelle Maschinen (VMs) zu erstellen. VMs sind Server, auf denen mehrere Anwendungen auf der gleichen zugrunde liegenden physischen Hardware ausgeführt werden können, ohne sich gegenseitig zu beeinträchtigen. Dies ermöglicht eine bessere Nutzung der Ressourcen und macht sie viel einfacher und kostengünstiger zu skalieren als herkömmliche Infrastrukturen. Aufgrund ihrer Unabhängigkeit können VMs außerdem leicht entsorgt werden: Wenn Sie die Anwendung nicht mehr benötigen, fahren Sie die VM einfach herunter.
Container bringen diese Abstraktion auf die nächste Ebene und virtualisieren den Betriebssystemkernel. Durch das Fehlen des Betriebssystems sind Container noch schlanker, schneller und flexibler als VMs.
Für viele Unternehmen bleibt Java ein wichtiger Bestandteil der Anwendungsentwicklung und bietet eine solide Grundlage für die Erstellung portabler und skalierbarer Lösungen. Es kann ebenfalls eine Schlüsselrolle bei der Modernisierung von Anwendungen auf dem Weg in die Cloud spielen.
Machen Sie den nächsten Schritt und erkunden Sie OpenJDK und IBM Runtimes for Business, die zuverlässigen und kostengünstigen kommerziellen Support für die Implementierung, Überwachung und Verwaltung von Java-Anwendungen bieten.