Loading AI tools
Die virtuelle Maschine Java von Oracle Aus Wikipedia, der freien Enzyklopädie
Die Java-Laufzeitumgebung (englisch Java Runtime Environment, kurz JRE) ist die Laufzeitumgebung der Java-Technik. Mit ihr werden Programme (Java-Anwendungen) weitgehend unabhängig vom darunter liegenden Betriebssystem ausgeführt. Sie stellt eine Softwareplattform dar, auch Java-Plattform genannt. Sie definiert die Anwendungsprogrammierschnittstellen (APIs) eindeutig und maschinenunabhängig und enthält die virtuelle Maschine (JVM).
Java | |
---|---|
Basisdaten | |
Entwickler | Oracle |
Betriebssystem | Windows, Solaris, Linux, macOS |
Programmiersprache | Java, C |
Lizenz | Freeware |
deutschsprachig | ja |
www.oracle.com/de/ |
Bis zur Version 8 wurde die Java-Laufzeitumgebung separat ausgeliefert und musste auf dem Zielsystem eigens installiert werden. Ab der Version 9 wird die Laufzeitumgebung gemeinsam mit dem Java Development Kit ausgeliefert und auch gemeinsam installiert. Um eine Java-Anwendung auf einem System laufen zu lassen, auf dem keine Java-Laufzeitumgebung installiert ist, muss die Java-Anwendung mit der Java-Laufzeitumgebung gelinkt werden.[1]
Allgemein besteht die Laufzeitumgebung aus der Java Virtual Machine (Java VM), die für die Ausführung der Java-Anwendungen verantwortlich ist, einer Programmierschnittstelle (API, für Application and Programming Interface) und weiteren Programmbibliotheken. Die API stellt die Standard-Klassen der Programmiersprache Java bereit, wie etwa „java.lang.String
“. Die virtuelle Maschine und die API müssen aufeinander abgestimmt sein und werden deshalb zur JRE zusammengefasst. Diese kann als virtueller Computer betrachtet werden, welcher in einer virtuellen Maschine einige Prozessoren und als oberste Bibliotheksschicht eine API zur Verfügung stellt.
Die Java-Laufzeitumgebung enthält keine Entwicklungswerkzeuge, wie beispielsweise Compiler. Für die Programmierung mit Java wird das Java Development Kit (JDK) oder eine andere Programmierumgebung, welche ebenfalls Java-Bytecode erzeugt, benötigt.
Das Java-Bedienfeld (Java Control Panel) ist eine Erweiterung für die Systemsteuerung von Microsoft Windows. Dort können Einstellungen der Java-Laufzeitumgebung (JRE) vorgenommen werden. Bei der Installation wird dazu die Datei jpicpl32.cpl bzw. javacpl.cpl zum Systemverzeichnis von Windows hinzugefügt.
Seit dem Erscheinen von Java 2 wird die Java-Laufzeitumgebung in der Form, wie sie von Sun zur Verfügung gestellt wird, in Editionen unterteilt, da Java-Anwendungen auf unterschiedlichen Endgeräten mit unterschiedlichen Charakteristiken eingesetzt werden können, von Mobilgeräten über Desktop-Computer bis zu Servern:
Die Standard- und die Enterprise-Edition benutzen die gleiche virtuelle Maschine (Java Virtual Machine, JVM), die Programmierschnittstelle ist in der Enterprise-Edition jedoch um zahlreiche Zusatzbibliotheken und Zusatzprogramme (insbesondere für den Anwendungsserver) ergänzt. Jakarta EE (früher Java EE) ist in erster Linie als Spezifikation zu verstehen, für deren Nutzung meist auf kommerzielle Produkte anderer Hersteller oder Open-Source-Software zurückgegriffen wird.
Versionsinformationen sind im Artikel/Abschnitt Java-Technologie #Versionen beschrieben.
Neben den Implementierungen von Sun Microsystems (seit 2010 Oracle), die üblicherweise als Referenz herangezogen werden, gibt es allgemeine JVMs von IBM. Für Echtzeit-Java oder für spezielle eingebettete Systeme sind sowohl freie Implementierungen der Java-Plattform (Kaffe, JamaicaVM) als auch verschiedene Projekte von Firmen und Universitäten bekannt. Die Java-Komponenten der Android-Plattform für mobile Endgeräte bilden eine weitere, nur teilweise aus SUN-Komponenten bestehende Java-Plattform.
Sun Microsystems stellt eine Reihe von Programmierschnittstellen (APIs) zur Realisierung von Softwareprojekten bereit und unterscheidet dabei zwischen solchen, die für alle Arten von Java-Anwendungen relevant sind (Core Java Technology, deutsch „Java-Kerntechnologie“), und solchen, die nur für Desktop-Anwendungen relevant sind (Desktop Java Technology).
Sun fasst Programmierschnittstellen, die sowohl für Server- als auch für Desktop-Anwendungen nützlich sind, unter dem Begriff Core Java Technology zusammen. Diese Programmierschnittstellen bilden also den Kern der Java-Technologie.
Dem Thema Sicherheit wurde schon in der Frühzeit von Java viel Aufmerksamkeit gewidmet, so leben beispielsweise Java-Applets in einer sogenannten Sandbox, die verhindern soll, dass sie auf dem lokalen Rechner Schaden anrichten können. Neuere Erweiterungen betreffen die Themen Verschlüsselung und Prüfung der Identität von Kommunikationsteilnehmern (Authentifizierung).
Der Zugriff von Java auf SQL-Datenbanken erfolgt über eine Programmierschnittstelle namens Java Database Connectivity (JDBC, deutsch Java-Datenbank-Verbindungsfähigkeit).
Für die Anbindung von Debuggern an virtuelle Maschinen wurde eine ganze Architektur namens Java Platform Debugger Architecture definiert.
Das Werkzeug Javadoc erzeugt aus Java-Quelltext HTML-Dateien, die einen guten Überblick über ganze Klassenbibliotheken geben. Durch die Möglichkeit, frei definierte Plug-ins hinzuzufügen, lassen sich damit mit geringem Aufwand auch andere Arten von Dateien aus Java-Quelltext erzeugen.
Neben Verfahren zur Internationalisierung, hauptsächlich durch die Verwendung von Unicode und die Klasse ResourceBundle (siehe Java Platform, Standard Edition) gehören weitere grundlegende Programmierschnittstellen zur Java-Plattform.
Neben den Kernbestandteilen der Java-Plattform gibt es optionale Komponenten, die diese um zusätzliche Funktionalitäten ergänzen.
Programmierschnittstellen, die in erster Linie für Anwendungen mit grafischer Benutzungsoberfläche benötigt werden, fasst Sun unter dem Begriff Desktop Java Technology zusammen.
Deployment ist die automatisierte Verteilung von Software auf viele Rechner und die Installation darauf. Die Java-Laufzeitumgebung JRE bietet hierzu zwei Verfahren an:
Mit den JavaBeans verfügt Java über ein eigenes Framework für Softwarekomponenten.
Die Standardklassenbibliotheken für die Erstellung grafischer Benutzeroberflächen (Graphical User Interface, GUI) mit Java heißen Java Foundation Classes (JFC). Sie enthalten neben dem grundlegenden Abstract Window Toolkit (AWT) weitere Klassenbibliotheken:
Für die Ausgabe von Tondateien, zum Beispiel im MIDI- oder WAV-Format, gibt es eine Klassenbibliothek namens Java Sound.
Webanwendungen (serverbasierte Anwendungen, deren Benutzerinteraktion über einen Browser stattfindet) bestehen gewöhnlich aus JSPs (JavaServer Pages) und Servlets. Die notwendigen Interfaces und Klassen befinden sich in der Jakarta EE. Zusammen mit den JavaBeans lassen sich recht komfortabel Anwendungen schreiben, die dem MVC-Pattern genügen. Eine Vielzahl von Frameworks setzt auf dieses API auf. Seit 2004 beinhaltet die Java-Plattform mit JavaServer Faces ein eigenes API für Webanwendungen, welche auf dem MVC-Pattern beruhen.
Um Daten dauerhaft zu speichern (zu „persistieren“), stellt die Enterprise Edition die Enterprise JavaBeans (EJBs) zur Verfügung. Dort kommen Entity Beans (zur Abbildung von fachlichen Objekten bzw. Entities), Session Beans (zur Abbildung des Workflows) und Message Driven Beans (für asynchrone Kommunikation) zum Einsatz. Der recht umständliche und nicht objektorientierte Ansatz wird mit der neuesten Spezifikation EJB 3.0 generalüberholt. Es existieren zahlreiche Frameworks, die Alternativen zur Persistierung anbieten (beispielsweise JDO oder Hibernate).
Als elementare Persistenzmechanismen bieten die Java-Kernbibliotheken zwei weitere Verfahren an:
Zusätzlich zu den oben genannten Bestandteilen der Java-Plattform, die immer vorhanden sein müssen, gibt es noch eine Reihe optionaler Komponenten, die bei Bedarf installiert werden können. Beispiele:
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.