Java Language
Java-Editionen, Versionen, Releases und Distributionen
Suche…
Unterschiede zwischen Java SE JRE- oder Java SE JDK-Distributionen
Sun / Oracle-Versionen von Java SE gibt es in zwei Formen: JRE und JDK. Einfach ausgedrückt unterstützen JREs das Ausführen von Java-Anwendungen, und JDKs unterstützen auch die Java-Entwicklung.
Java-Laufzeitumgebung
Java Runtime Environment- oder JRE-Distributionen bestehen aus einer Reihe von Bibliotheken und Tools, die zum Ausführen und Verwalten von Java-Anwendungen erforderlich sind. Zu den Tools in einer typischen modernen JRE gehören:
- Der
java
Befehl zum Ausführen eines Java-Programms in einer JVM (Java Virtual Machine) - Der Befehl
jjs
zum Ausführen der Nashorn-JavaScript-Engine. - Der Befehl
keytool
zum Bearbeiten von Java-Keystores. - Der
policytool
Befehl zum Bearbeiten von Sicherheits-Sandbox-Sicherheitsrichtlinien. - Die Tools
pack200
undunpack200
zum Packen und Entpacken der "pack200" -Datei für die Webbereitstellung. - Die
orbd
,rmid
,rmiregistry
undtnameserv
unterstützen Javatnameserv
und RMI-Anwendungen.
"Desktop JRE" -Installer enthalten ein Java-Plugin, das für einige Webbrowser geeignet ist. Dies wird bewusst aus "Server JRE" installers.linux syscall read benchmarku ausgelassen
Seit Java 7 Update 6 enthalten JRE-Installationsprogramme JavaFX (Version 2.2 oder höher).
Java Entwickler-Kit
Ein Java Development Kit oder eine JDK-Distribution enthält die JRE-Tools und zusätzliche Tools zum Entwickeln von Java-Software. Zu den zusätzlichen Tools gehören normalerweise:
- Der Befehl
javac
, der Java-Quellcode (".java") in Bytecode-Dateien (".class") übersetzt. - Die Tools zum Erstellen von JAR-Dateien wie
jar
undjarsigner
- Entwicklungswerkzeuge wie:
-
appletviewer
zum Ausführen von Applets -
idlj
der CORBA-IDL-zu-Java-Compiler -
javah
der JNI-Stub-Generator -
native2ascii
zur Zeichensatzkonvertierung von Java-Quellcode -
schemagen
den Java-zu-XML-Schema-Generator (Teil von JAXB). -
serialver
generiert eine Java Object Serialization-Versionszeichenfolge. - Die Support-Tools für
wsgen
undwsimport
für JAX-WS
-
- Diagnosewerkzeuge wie:
-
jdb
der grundlegende Java-Debugger -
jmap
undjhat
zum Ablegen und Analysieren eines Java-jhat
. -
jstack
zumjstack
eines Thread-Stack-Dumps. -
javap
zum Untersuchen von ".class" -Dateien.
-
- Anwendungsmanagement- und Überwachungstools wie:
-
jconsole
eine Managementkonsole, -
jstat
,jstatd
,jinfo
undjps
für die Anwendungsüberwachung
-
Eine typische Sun / Oracle-JDK-Installation enthält auch eine ZIP-Datei mit dem Quellcode der Java-Bibliotheken. Vor Java 6 war dies der einzige öffentlich verfügbare Java-Quellcode.
Ab Java 6 steht der vollständige Quellcode für OpenJDK auf der OpenJDK-Site zum Download zur Verfügung. Es ist normalerweise nicht in (Linux) JDK-Paketen enthalten, es ist jedoch als separates Paket verfügbar.
Was ist der Unterschied zwischen Oracle Hotspot und OpenJDK?
Orthogonal zur JRE- und JDK-Dichotomie gibt es zwei Arten von Java-Releases, die allgemein verfügbar sind:
- Die Oracle Hotspot-Versionen sind diejenigen, die Sie von den Oracle-Download-Sites herunterladen.
- Die OpenJDK-Versionen sind diejenigen, die (normalerweise von Drittanbietern) aus den OpenJDK-Quell-Repositorys erstellt werden.
In funktionaler Hinsicht gibt es wenig Unterschiede zwischen einer Hotspot-Version und einer OpenJDK-Version. Es gibt einige zusätzliche "Enterprise" -Funktionen in Hotspot, die Oracle (zahlende) Java-Kunden aktivieren können. Abgesehen davon gibt es in Hotspot und OpenJDK dieselbe Technologie.
Ein weiterer Vorteil von Hotspot gegenüber OpenJDK ist, dass Patch-Releases für Hotspot etwas früher verfügbar sind. Dies hängt auch davon ab, wie flexibel Ihr OpenJDK-Provider ist. Wie lange dauert beispielsweise das Build-Team einer Linux-Distribution, um einen neuen OpenJDK-Build vorzubereiten und zu prüfen und in seine öffentlichen Repositorys zu bringen.
Die andere Seite ist, dass die Hotspot-Versionen für die meisten Linux-Distributionen nicht in den Paket-Repositorys verfügbar sind. Das bedeutet, dass das Aufrechterhalten der Java-Software auf einem Linux-Computer normalerweise mehr Arbeit erfordert, wenn Sie Hotspot verwenden.
Unterschiede zwischen Java EE, Java SE, Java ME und JavaFX
Java-Technologie ist sowohl eine Programmiersprache als auch eine Plattform. Die Java-Programmiersprache ist eine objektorientierte Hochsprache mit einer bestimmten Syntax und einem bestimmten Stil. Eine Java-Plattform ist eine bestimmte Umgebung, in der Java-Programmiersprachenanwendungen ausgeführt werden.
Es gibt verschiedene Java-Plattformen. Viele Entwickler, selbst langjährige Entwickler von Java-Programmiersprachen, verstehen nicht, wie die verschiedenen Plattformen miteinander zusammenhängen.
Die Java-Programmiersprachenplattformen
Es gibt vier Plattformen der Java-Programmiersprache:
Java-Plattform, Standard Edition (Java SE)
Java-Plattform, Enterprise Edition (Java EE)
Java-Plattform, Micro Edition (Java ME)
Java FX
Alle Java-Plattformen bestehen aus einer Java Virtual Machine (VM) und einer Anwendungsprogrammierschnittstelle (API). Die Java Virtual Machine ist ein Programm für eine bestimmte Hardware- und Softwareplattform, das Java-Technologieanwendungen ausführt. Eine API ist eine Sammlung von Softwarekomponenten, die Sie zum Erstellen anderer Softwarekomponenten oder Anwendungen verwenden können. Jede Java-Plattform bietet eine virtuelle Maschine und eine API. Dadurch können Anwendungen, die für diese Plattform geschrieben wurden, auf jedem kompatiblen System mit allen Vorteilen der Java-Programmiersprache ausgeführt werden: Plattformunabhängigkeit, Leistung, Stabilität, Entwicklungsfreundlichkeit und Sicherheit.
Java SE
Wenn die meisten Leute an die Java-Programmiersprache denken, denken sie an die Java SE-API. Die API von Java SE bietet die Kernfunktionalität der Java-Programmiersprache. Es definiert alles von den grundlegenden Typen und Objekten der Java-Programmiersprache bis zu übergeordneten Klassen, die für Netzwerke, Sicherheit, Datenbankzugriff, Entwicklung grafischer Benutzeroberflächen (GUI) und XML-Analyse verwendet werden.
Neben der Kern-API besteht die Java SE-Plattform aus einer virtuellen Maschine, Entwicklungstools, Bereitstellungstechnologien und anderen Klassenbibliotheken und Toolkits, die üblicherweise in Java-Technologieanwendungen verwendet werden.
Java EE
Die Java EE-Plattform basiert auf der Java SE-Plattform. Die Java EE-Plattform bietet eine API- und Laufzeitumgebung für die Entwicklung und Ausführung großer, mehrschichtiger, skalierbarer, zuverlässiger und sicherer Netzwerkanwendungen.
Java ME
Die Java ME-Plattform bietet eine API und eine virtuelle Maschine mit geringem Speicherbedarf für die Ausführung von Java-Programmiersprachenanwendungen auf kleinen Geräten wie Mobiltelefonen. Die API ist eine Teilmenge der Java SE-API zusammen mit speziellen Klassenbibliotheken, die für die Entwicklung von Anwendungen für kleine Geräte nützlich sind. Java ME-Anwendungen sind häufig Clients von Java EE-Plattformdiensten.
Java FX
Die Java FX-Technologie ist eine Plattform zum Erstellen von Rich-Internet-Anwendungen, die in Java FX ScriptTM geschrieben sind. Java FX Script ist eine statisch typisierte deklarative Sprache, die zu Bytecode der Java-Technologie kompiliert wird, der dann auf einer Java-VM ausgeführt werden kann. Anwendungen, die für die Java FX-Plattform geschrieben wurden, können Java-Programmiersprachklassen enthalten und mit ihnen verknüpfen und können Clients von Java EE-Plattformdiensten sein.
- Entnommen aus der Oracle-Dokumentation
Java SE-Versionen
Java SE-Versionsverlauf
Die folgende Tabelle enthält die Zeitleiste für die wichtigen Hauptversionen der Java SE-Plattform.
Java SE Version 1 | Code Name | Ende des Lebens (kostenlos 2 ) | Veröffentlichungsdatum |
---|---|---|---|
Java SE 9 (früher Zugriff) | Keiner | Zukunft | 2017-07-27 (geschätzt) |
Java SE 8 | Keiner | Zukunft | 2014-03-18 |
Java SE 7 | Delphin | 2015-04-14 | 2011-07-28 |
Java SE 6 | Mustang | 2013-04-16 | 2006-12-23 |
Java SE 5 | Tiger | 2009-11-04 | 2004-10-04 |
Java SE 1.4.2 | Gottesanbeterin | vor dem 2009-11-04 | 2003-06-26 |
Java SE 1.4.1 | Trichter / Grashüpfer | vor dem 2009-11-04 | 2002-09-16 |
Java SE 1.4 | Merlin | vor dem 2009-11-04 | 2002-02-06 |
Java SE 1.3.1 | Marienkäfer | vor dem 2009-11-04 | 2001-05-17 |
Java SE 1.3 | Turmfalke | vor dem 2009-11-04 | 2000-05-08 |
Java SE 1.2 | Spielplatz | vor dem 2009-11-04 | 1998-12-08 |
Java SE 1.1 | Wunderkerze | vor dem 2009-11-04 | 1997-02-19 |
Java SE 1.0 | Eiche | vor dem 2009-11-04 | 1996-01-21 |
Fußnoten:
Die Links verweisen auf Online-Kopien der jeweiligen Release-Dokumentation auf der Oracle-Website. Die Dokumentation für viele ältere Versionen ist nicht mehr online, obwohl sie normalerweise aus dem Oracle Java-Archiv heruntergeladen werden kann.
Die meisten historischen Versionen von Java SE haben ihre offiziellen End-of-Life-Daten überschritten. Wenn eine Java-Version diesen Meilenstein überschreitet, stellt Oracle keine kostenlosen Updates mehr bereit. Kunden mit Supportverträgen stehen weiterhin Updates zur Verfügung.
Quelle:
- JDK-Veröffentlichungsdaten von Roedy Green von Canadian Mind Products
Highlights der Java SE-Version
Java SE-Version | Höhepunkte |
---|---|
Java SE 8 | Lambda-Ausdrücke und MapReduce-inspirierte Streams. Die Nashorn-Javascript-Engine. Anmerkungen zu Typen und sich wiederholende Anmerkungen. Vorzeichenlose arithmetische Erweiterungen. Neue Datums- und Uhrzeit-APIs. Statisch verknüpfte JNI-Bibliotheken. JavaFX Launcher. Entfernung von PermGen. |
Java SE 7 | String-Schalter, Try-with-Ressource , Raute ( <> ), Verbesserungen des numerischen Literal und Verbesserungen bei der Behandlung von Ausnahmen / Wiederherstellen. Parallele Bibliotheksverbesserungen. Erweiterte Unterstützung für native Dateisysteme. Timsort ECC-Kryptoalgorithmen. Verbesserte Unterstützung für 2D-Grafiken (GPU). Steckbare Anmerkungen. |
Java SE 6 | Erhebliche Leistungsverbesserungen für JVM-Plattform und Swing. Skriptsprache-API und Mozilla Rhino-Javascript-Engine. JDBC 4.0. Compiler-API JAXB 2.0. Web Services-Unterstützung (JAX-WS) |
Java SE 5 | Generics, Anmerkungen, Auto-Boxing, enum , Varargs, erweitert for Schleifen und statische Importe. Spezifikation des Java-Speichermodells. Swing- und RMI-Verbesserungen. Hinzufügen des Pakets java.util.concurrent.* Und des Scanner . |
Java SE 1.4 | Das assert Schlüsselwort. Klassen für reguläre Ausdrücke Ausnahme-Verkettung. NIO-APIs - nicht blockierende E / A, Buffer und Channel . java.util.logging.* API. Image I / O-API. Integriertes XML und XSLT (JAXP). Integrierte Sicherheit und Kryptographie (JCE, JSSE, JAAS). Integrierter Java Web Start. Einstellungen-API. |
Java SE 1.3 | HotSpot-JVM enthalten. CORBA / RMI-Integration. Java Naming und Directory Interface (JNDI). Debugger-Framework (JPDA). JavaSound-API. Proxy-API |
Java SE 1.2 | Das Keyword strictfp . Swing-APIs Das Java-Plugin (für Webbrowser). CORBA-Interoperabilität. Rahmen für Sammlungen. |
Java SE 1.1 | Innere Klassen. Reflexion. JDBC. RMI. Unicode / Zeichenströme. Unterstützung bei der Internationalisierung. Überholung des AWT-Ereignismodells. JavaBeans. |
Quelle:
- Wikipedia: Java-Versionsgeschichte