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 und unpack200 zum Packen und Entpacken der "pack200" -Datei für die Webbereitstellung.
  • Die orbd , rmid , rmiregistry und tnameserv unterstützen Java tnameserv 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 und jarsigner
  • 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 und wsimport für JAX-WS
  • Diagnosewerkzeuge wie:
    • jdb der grundlegende Java-Debugger
    • jmap und jhat zum Ablegen und Analysieren eines Java- jhat .
    • jstack zum jstack eines Thread-Stack-Dumps.
    • javap zum Untersuchen von ".class" -Dateien.
  • Anwendungsmanagement- und Überwachungstools wie:
    • jconsole eine Managementkonsole,
    • jstat , jstatd , jinfo und jps 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.


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:

  1. 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.

  2. 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:

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:



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow