www.wikidata.de-de.nina.az
Die Java Technik englisch Java Technology ist eine ursprunglich von Sun heute Oracle Gruppe entwickelte Sammlung von Spezifikationen die zum einen die Programmiersprache Java und zum anderen verschiedene Laufzeitumgebungen fur Computerprogramme definieren Diese Computerprogramme werden meistens in Java geschrieben Java LogoJava TechnologiesZur Java Technik gehoren die folgenden Bestandteile die Programmiersprache Java um Programme zu formulieren das Java Development Kit ein Entwicklungswerkzeug das grundlegende Teile wie einen Ubersetzer und Bibliotheken enthalt die Java Laufzeitumgebung eine standardisierte Software Plattform um die entwickelten Programme ausfuhren zu konnen Inhaltsverzeichnis 1 Ziel 2 Bestandteile 2 1 Programmiersprache Java 2 2 Entwicklungswerkzeuge fur Java Programme 2 3 Java Laufzeitumgebung Plattform 3 Geschichte 3 1 Der Name Java 3 2 Versionen 3 2 1 Version 1 3 2 2 Version 1 1 3 2 3 Version 1 2 3 2 4 Version 1 3 3 2 5 Version 1 4 3 2 6 Version 5 0 3 2 7 Version 6 3 2 8 Version 7 3 2 9 Version 8 3 2 10 Version 9 3 2 11 Version 10 3 2 12 Version 11 3 2 13 Version 12 3 2 14 Version 13 3 2 15 Version 14 3 2 16 Version 15 3 2 17 Version 16 3 2 18 Version 17 3 2 19 Version 18 3 2 20 Version 19 3 2 21 Version 20 3 2 22 Version 21 4 Lizenz 5 Anwendungen 6 Kritik 7 Weblinks 8 EinzelnachweiseZiel BearbeitenMit der Java Technik soll ein und dasselbe Programm auf unterschiedlichen Computersystemen laufen konnen Diese Plattformunabhangigkeit wird dadurch erreicht dass der Quellcode zunachst in Bytecode kompiliert wird der erst auf dem Zielsystem von der Java Laufzeitumgebung Java Runtime Environment kurz JRE beim Starten des Programms in die jeweilige Maschinensprache ubersetzt wird Der Bytecode funktioniert also als Zwischencode zwischen Programmiersprache und Maschinensprache Die Java Laufzeitumgebung muss auf dem Zielsystem installiert sein Sie existiert fur weit verbreitete Betriebssysteme wie Microsoft Windows Linux Solaris Mac OS X AIX und viele andere Daneben gibt es JREs nicht nur fur Server und Desktop Betriebssysteme sondern auch fur viele eingebettete Systeme wie Mobiltelefone PDAs und Smartcards sowie fur andere technische Plattformen wie Auto und TV Die Plattformunabhangigkeit endet bei Systemen fur die keine Java Virtual Machine existiert zumeist also altere oder sehr exotische Systeme Bestandteile BearbeitenDie Java Technik besteht aus den folgenden Teilen Aufbau der Java Technik Programmier sprache Java Quelltext java JDK EntwicklungswerkzeugeJava Compiler Java Bytecode class jar JRE Java Programmierschnittstelle API Java Virtual Machine JVM mit Just in time KompilierungBetriebs system Windows Linux Solaris Mac OS X Programmiersprache Java Bearbeiten Hauptartikel Java Programmiersprache Java ist eine objektorientierte Programmiersprache und eingetragenes Warenzeichen der Firma Oracle Der Entwurf der Programmiersprache Java strebte im Wesentlichen funf Ziele an 1 2 Sie soll eine einfache objektorientierte verteilte und vertraute Programmiersprache sein Sie soll robust und sicher sein Sie soll architekturneutral und portabel sein Sie soll sehr leistungsfahig sein Sie soll interpretierbar parallelisierbar und dynamisch gebunden sein Entwicklungswerkzeuge fur Java Programme Bearbeiten Hauptartikel OpenJDK Sie enthalten Compiler die den Quellcode in Java Bytecode ubersetzen Dokumentationswerkzeuge und Werkzeuge um Programme zu testen Programme fur die Java Plattform werden in der Regel mit Hilfe der Programmiersprache Java erstellt Die Verwendung anderer Programmiersprachen ist moglich z B Nice oder Groovy Java Laufzeitumgebung Plattform Bearbeiten Hauptartikel Java Laufzeitumgebung Die Java Laufzeitumgebung JRE ist eine Softwareplattform mit der Programme weitgehend unabhangig vom darunter liegenden Betriebssystem ausgefuhrt werden Sie definiert die Anwendungsprogrammierschnittstellen APIs eindeutig und maschinenunabhangig und enthalt die Java Virtual Machine JVM die fur die Ausfuhrung des Java Bytecodes verantwortlich ist Fur die meisten Betriebssysteme ist sie kostenlos verfugbar Zwischen folgenden Java Plattformen wird unterschieden Java Platform Java Card Reduzierter Java Standard um sogenannte Java Card Applets auf Chipkarten ausfuhren zu konnen Java Platform Micro Edition Java ME Plattform fur so genannte embedded consumer products wie etwa Mobiltelefone oder PDAs Java Platform Standard Edition Java SE Sammlung von Java Programmierschnittstellen fur den generellen Einsatz auf PCs Servern oder ahnlichen Geraten Die Java SE dient als Grundlage fur die Java EE und Java ME Techniken Jakarta EE Java SE angereichert um Programmierschnittstellen fur die transaktionsbasierte Ausfuhrung von mehrschichtigen Unternehmens und Web Anwendungen Geschichte Bearbeiten nbsp Duke Javas MaskottchenDie Urversion von Java auch Oak Object Application Kernel genannt wurde in einem Zeitraum von 18 Monaten vom Fruhjahr 1991 bis Sommer 1992 unter dem Namen The Green Project von Patrick Naughton Mike Sheridan James Gosling und Bill Joy sowie neun weiteren Entwicklern im Auftrag des US amerikanischen Computerherstellers Sun Microsystems entwickelt James Gosling war der Hauptentwickler Ein Uberbleibsel aus dem Green Projekt ist der Duke von Joe Palrang der zum bekannten Symbol bzw Maskottchen geworden ist Der Name Oak hatte nach Geruchten seinen Ursprung in einer Eiche englisch oak die vor dem Fenster von James Gosling stand Aufgrund rechtlicher Probleme musste der Name es gab bereits eine Software dieses Namens jedoch verworfen werden Man entschied sich fur den Namen Java nach einer starken Kaffee Sorte die speziell fur Espresso Verwendung findet Java Bohne und von den Entwicklern bevorzugt getrunken wurde Das Ziel war nicht nur die Entwicklung einer weiteren Programmiersprache sondern einer vollstandigen Betriebssystemumgebung inklusive virtueller CPU fur unterschiedlichste Einsatzzwecke Das System sollte der Legende nach beispielsweise eine Kaffeemaschine steuern konnen Die Entwicklung fand in einem unauffalligen Burogebaude in der Sand Hill Road in Menlo Park statt Wahrend der abgeschiedenen Entwicklungsphase kam es zu keinem Austausch mit Sun Microsystems Im Sommer 1992 schliesslich war die erste Oak basierte Anwendung fertiggestellt an interactive handheld home entertainment device controller with an animated touchscreen user interface Diese Technikdemonstration einer Touchscreen basierten Geratesteuerung mit animierter grafischer Benutzeroberflache hatte den Namen 7 Star Seven Nach der Vorfuhrung von Star Seven mit dem zahlreiche Gerate interaktiv gesteuert werden konnten wurden Unternehmen aus der Kabelfernseh Branche aufmerksam und aus dem Hinterzimmer Projekt The Green Project entstand das Unternehmen FirstPerson Aus dem Buro wurde ein Burohaus in der 100 Hamilton Avenue in Palo Alto Da die Belegschaft inzwischen von 13 auf 70 Mitarbeiter gewachsen und die Zeit fur interaktive digitale Mehrwertdienste im Bereich des Kabelfernsehens noch nicht reif war suchte sich das junge Unternehmen neue Betatigungsfelder Nach einem dreitagigen Treffen von John Gage James Gosling Bill Joy Patrick Naughton Wayne Rosing und Eric Schmidt in The Inn at Squaw Creek bei Lake Tahoe war schnell klar das Internet sollte es sein Auf Basis des Urvaters aller grafischen Webbrowser Mosaic wurde ein um Java erweiterter Webbrowser geschaffen der WebRunner nach dem Film Blade Runner Spater wurde WebRunner in HotJava umbenannt Im Marz 1995 wurde die erste Alphaversion 1 0a2 des Java Quellcodes fur die Offentlichkeit freigegeben Wenig spater am 23 Mai 1995 wurde Java erstmals offiziell der Offentlichkeit vorgestellt in den San Jose Mercury News Der Durchbruch kam mit der Integration von Java in den Browser Netscape Navigator besiegelt durch einen Handschlag zwischen Eric Schmidt und George Paolini von Sun Microsystems sowie Marc Andreessen von Netscape um 4 Uhr morgens in einem Zimmer des Sheraton Palace Hotels in der Nahe des Tagungszentrums Die Firma Oracle die im Januar 2010 Sun Microsystems kaufte will die Java Technik zusammen mit dem Java Community Process in Richtung freie und quelloffene Software OpenJDK weiterentwickeln 3 Der Name Java Bearbeiten Dieser Artikel oder nachfolgende Abschnitt ist nicht hinreichend mit Belegen beispielsweise Einzelnachweisen ausgestattet Angaben ohne ausreichenden Beleg konnten demnachst entfernt werden Bitte hilf Wikipedia indem du die Angaben recherchierst und gute Belege einfugst Der Name fur die neue Technik war schnell gefunden Die meisten Programmierer bevorzugten das Strassencafe Java City roasters of fine coffee in Menlo Park unweit ihres Burogebaudes wohin sie ab und zu in der Mittagspause gingen um nach dem Essen noch einen Kaffee zu trinken Die beliebteste Kaffeesorte der Programmierer hiess Java Dieser Name wurde deshalb auch fur die neue Technik genutzt Auch der Name JavaBeans leitet sich aus dieser Begebenheit ab Sun Microsystems verwendet in der Vermarktung und bei der internen Entwicklung mitunter unterschiedliche Versionsnummern So wurde die Java Version 1 2 nicht als 1 2 vermarktet sondern als Java 2 Plattform Intern blieben die Versionsnummern bei dem 1 x Schema so dass sich Produktnamen wie Java 2 Standard Edition 1 4 2 ergaben Diese Diskrepanz wurde zumindest bei den Produktnamen aufgegeben Das Produkt heisst jetzt Java Standard Edition 7 die interne Versionsnummer ist jedoch weiterhin 1 7 Versionen Bearbeiten Legende Altere Version nicht mehr unterstutzt Altere Version noch unterstutzt Aktuelle Version Aktuelle Vorabversion Zukunftige VersionVersionen und Codenamen 4 Version Codename Veroffentlichung Ende des kostenlosen SupportsAltere Version nicht mehr unterstutzt JDK 1 1 4 Sparkler 12 September 1997Altere Version nicht mehr unterstutzt JDK 1 1 5 Pumpkin 3 Dezember 1997Altere Version nicht mehr unterstutzt JDK 1 1 6 Abigail 24 April 1998Altere Version nicht mehr unterstutzt JDK 1 1 7 Brutus 28 September 1998Altere Version nicht mehr unterstutzt JDK 1 1 8 Chelsea 8 April 1999Altere Version nicht mehr unterstutzt J2SE 1 2 Playground 4 Dezember 1998Altere Version nicht mehr unterstutzt J2SE 1 2 1 keiner 30 Marz 1999Altere Version nicht mehr unterstutzt J2SE 1 2 2 Cricket 8 Juli 1999Altere Version nicht mehr unterstutzt J2SE 1 3 Kestrel 8 Mai 2000 Dezember 2006 5 Altere Version nicht mehr unterstutzt J2SE 1 3 1 Ladybird 17 Mai 2001Altere Version nicht mehr unterstutzt J2SE 1 4 0 Merlin 13 Februar 2002 Oktober 2008 6 Altere Version nicht mehr unterstutzt J2SE 1 4 1 Hopper 16 September 2002Altere Version nicht mehr unterstutzt J2SE 1 4 2 Mantis 26 Juni 2003Altere Version nicht mehr unterstutzt J2SE 5 0 1 5 0 Tiger 29 September 2004 Oktober 2009 7 Altere Version nicht mehr unterstutzt JSE 6 0 Mustang 8 11 Dezember 2006 Februar 2013 7 Altere Version nicht mehr unterstutzt JSE 7 0 Dolphin 8 28 Juli 2011 9 April 2015 7 Altere Version nicht mehr unterstutzt JSE 8 0 18 Marz 2014 10 Marz 2022 11 Altere Version nicht mehr unterstutzt JSE 9 0 27 Juli 2017 12 Marz 2018 11 Altere Version nicht mehr unterstutzt JSE 10 0 18 3 20 Marz 2018 September 2018 11 Altere Version noch unterstutzt JSE 11 0 18 9 LTS 25 September 2018 13 September 2023 11 Altere Version nicht mehr unterstutzt JSE 12 0 19 Marz 2019 14 September 2019 11 Altere Version nicht mehr unterstutzt JSE 13 0 17 September 2019 15 Marz 2020 11 Altere Version nicht mehr unterstutzt JSE 14 0 17 Marz 2020 16 September 2020 11 Altere Version nicht mehr unterstutzt JSE 15 0 15 September 2020 17 Marz 2021 11 Altere Version nicht mehr unterstutzt JSE 16 0 16 Marz 2021 18 September 2021 11 Altere Version noch unterstutzt JSE 17 0 LTS 14 Sep 2021 19 Sep 2026 11 Altere Version nicht mehr unterstutzt JSE 18 0 22 Marz 2022 20 Sep 2022 11 Altere Version nicht mehr unterstutzt JSE 19 0 20 Sep 2022 21 Marz 2023 11 Altere Version nicht mehr unterstutzt JSE 20 0 21 Marz 2023 22 Sep 2023 11 Aktuelle Version JSE 21 0 LTS 19 Sep 2023 23 Sep 2028 11 Zukunftige Version JSE 22 0 19 Marz 2024 23 Zukunftige Version JSE 23 0 17 Sep 2024 23 Zukunftige Version JSE 24 0 18 Marz 2025 23 Versionen und Grossen 24 Version Pakete Klassen Enums und Interfaces ModuleAltere Version nicht mehr unterstutzt JDK 1 0 0 0 8 0 212Altere Version nicht mehr unterstutzt JDK 1 1 0 23 0 504Altere Version nicht mehr unterstutzt JDK 1 2 0 59 1520Altere Version nicht mehr unterstutzt JDK 1 3 0 76 1842Altere Version nicht mehr unterstutzt JDK 1 4 135 2991Altere Version nicht mehr unterstutzt J2SE 5 0 166 3279Altere Version nicht mehr unterstutzt JSE 6 0 203 3793Altere Version nicht mehr unterstutzt JSE 7 0 209 4024Altere Version noch unterstutzt JSE 8 0 217 4240Altere Version nicht mehr unterstutzt JSE 9 0 315 25 6005 25 78 25 Altere Version nicht mehr unterstutzt JSE 10 0 314 26 6002 26 77 26 Altere Version noch unterstutzt JSE 11 0 235 27 4410 28 59 28 72 29 Version 1 Bearbeiten Die 1996 erschienene Java Version 1 0 enthielt noch eine uberschaubare Menge von Standardpaketen die in spateren Versionen schnell anwuchs java lang elementare Klassen z B Object und System java io Ein und Ausgabe java util z B Datenstrukturen und eine Datumsklasse java net einfache Internetprotokoll Klassen java awt grundlegende Klassen fur grafische Benutzeroberflachen java applet eine Klasse fur die bekannten AppletsObwohl diese neue Sprache primar zum Entwickeln von Applets gedacht war bot sie schon in der ersten Version Moglichkeiten die weit daruber hinaus reichten Version 1 1 Bearbeiten Eine Spracherweiterung wurde 1997 mit Java 1 1 vorgenommen die Syntax wurde um das Konzept der inneren Klassen erweitert Das ging einher mit einem Umbau der Ereignisbehandlung hin zu einem Callback System mit sogenannten Listenern Ausserdem wurde die Standardbibliothek erweitert Klassen fur die Internationalisierung so genannte Ressourcenbundel Java Komponenten die Java Beans Das Dateiformat JAR fur die Paketierung ganzer Bibliotheken oder Anwendungen als Java Archive Klassen fur numerisches Rechnen BigInteger und BigDecimal Ein Protokoll fur verteilte Programme die Remote Method Invocation RMI Objektserialisierung fur die persistente Speicherung von Objekten z B in Dateien JDBC fur den Zugriff auf relationale Datenbanken Sicherheitsfunktionen z B zum Signieren von JAR Dateien und AppletsIn den Versionen ab 1 1 5 war bereits Swing verfugbar jedoch zahlte dieses Framework noch nicht zum offiziellen Java Besonders problematisch war dass Swing mit Erscheinen von 1 2 eine andere Paketstruktur aufwies und eine Portierung notwendig machte Version 1 2 Bearbeiten Java 2 JDK 1 2 erschien im Jahr 1998 4 Mit Erscheinen dieser Version sprach Sun von Java 2 dementsprechend heissen die Pakete Java 2 Platform Standard Edition J2SE und statt Java Development Kit JDK heisst es Java 2 Software Development Kit J2SDK In dieser Version wurde neben dem bestehenden Interpreter ein Just in time Compiler eingefuhrt dieser beschleunigt die Ausfuhrung von Java Programmen deutlich Die HotSpot Just in time Kompilierung inklusive adaptiver Optimierung wurde als Erweiterung fur Java 1 2 angeboten 30 ab Java 1 3 wurde HotSpot als alleinige JVM von Sun angeboten 31 Erneut wurde die Standardbibliothek erweitert Neue Schnittstellen und Implementierungen fur Collections also Datenstrukturen wie Listen Mengen und Maps Assoziativlisten Die Oberflachenbibliothek Swing Neue Grafik Funktionen Java 2D Drag and Drop Funktionalitat Verbesserte Audio Funktionen Eine CORBA Schnittstelle Schwache Referenzen das sind Referenzen die den Garbage Collector nicht daran hindern das referenzierte Objekt zu entfernenIm Jahr 1998 wurde auch der Java Community Process JCP eingefuhrt Diese Organisation steuert seitdem Anderungen an der Spezifikation von Java Fur vorgeschlagene Anderungen wird ein Java Specification Request JSR erstellt der verschiedene Phasen durchlauft bevor die Anderungen in Java Einzug halten Version 1 3 Bearbeiten 2000 erschien J2SE 1 3 als nachster Evolutionsschritt die API wurde erneut erweitert Ausserdem wurde eine Engine mit Hotspot Optimierung eingefuhrt Das bedeutet dass haufig benutzte Codefragmente Hotspots vom Bytecode zur Laufzeit in nativen Maschinencode ubersetzt werden Resultat war eine deutlich gesteigerte Ausfuhrungsgeschwindigkeit API Erweiterungen Java Naming and Directory Interface JNDI Java Sound APIVersion 1 4 Bearbeiten Erst 2002 wurde mit Erscheinen von J2SE 1 4 wieder die Sprache selbst erweitert was zuletzt bei Version 1 1 geschehen war Eine Unterstutzung fur Assertions wurde hinzugefugt Auch die API wurde erweitert was insbesondere die Serverprogrammierung erleichtern soll Die letzte Version von Java 1 4 war Java SE 1 4 2 42 End of Public Updates das Ende offentlicher Aktualisierungen erreichte J2SE 1 4 im Oktober 2008 32 Siehe auch Servlet Java Web Start JSP Jakarta EE J2ME Javadoc Blackdown Java Version 5 0 Bearbeiten Java 5 0 erschien am 30 September 2004 als Nachfolger der Version 1 4 Bei dem augenscheinlichen Versionssprung von 1 x auf 5 handelt es sich um die Einfuhrung einer sog Produktnummer Diese Produktnummern sollen in Zukunft die Java Versionen nach aussen hin reprasentieren Intern sollte dieselbe Produktversion nach der bekannten traditionellen Versionsnummer bezeichnet werden Java 5 0 entspricht also der internen Versionsnummer 1 5 Java 6 0 entsprechend 1 6 etc 33 Die 2 z B aus Jakarta EE verschwand somit ebenfalls ab Version 5 0 der Java Enterprise Edition Sie wird nun mit Java EE 5 bezeichnet 34 In Version 5 gab es umfangreiche Anderungen an der Sprache sowie weitere API Erweiterungen Generische Typen Generics Vereinfachte Syntax fur die Iteration uber Collections Maps und Arrays Autoboxing unboxing d h implizite Umwandlung von primitiven Datentypen in Objekte und zuruck Metadaten mit Hilfe von Annotationen Syntaktische Unterstutzung fur Aufzahlungswerte Enumerations Unterstutzung fur variable Argumentenlisten von Methoden Statischer Import von Klassen Erweiterte Look and Feels Hilfsklassen fur nebenlaufige Programmierung im neuen Paket java util concurrent kovariante Ergebnistypen bei MethodenDie zunachst fur Java 5 Tiger Release geplanten Erweiterungen der Ein Ausgabefunktionen JSR 203 35 wurden erst auf Java 6 Mustang Release und Anfang 2006 dann auf Java 7 Dolphin Release verschoben Die letzte Version von Java SE 5 war JavaSE 5 0u45 End of Public Updates das Ende offentlicher Aktualisierungen erreichte JavaSE 5 im Oktober 2009 32 Version 6 Bearbeiten Die Java Version 6 wurde am 11 Dezember 2006 veroffentlicht Besonderes Augenmerk wurde auf Diagnose Uberwachung und Management gelegt So wurde ein Framework zur Zusammenarbeit mit diversen Skriptsprachen wie z B PHP Python Ruby und JavaScript eingefuhrt Weitere Neuerungen waren eine verbesserte Darstellung von Desktop Anwendungen sowie die Integration von Java DB einer in Java implementierten relationalen Datenbank die auf Apache Derby basiert Die im Oktober 2008 veroffentlichte Version 6u10 brachte nicht wie sonst ublich ausschliesslich Fehlerbeseitigungen sondern diverse Anderungen der JVM mit denen nicht bis zum Erscheinen von Java 7 gewartet wurde Zu den wichtigsten Neuerungen die im Vorfeld bereits gefordert wurden gehorten unter anderem Ein Next Generation Java Plugin das dem Website Betreiber mehr Moglichkeiten uber eingebundene Applets anbietet 36 Der fur Webapplikationen gedachte Java Kernel der bei Bedarf eine minimale JVM installiert und nur die notigen Pakete herunterladt und lokal speichert 37 Der Java Quick Starter mit dessen Hilfe die Startzeit von Java Applikationen deutlich verringert wird 38 Eine vollstandige Liste sowie detaillierte Beschreibungen sind der Ankundigung zum Update 10 zu entnehmen 39 Weitere Verbesserungen an der virtuellen Maschine die ursprunglich fur Java 7 geplant waren wurden in Java 6 integriert und in mehreren Schritten ab Java 6 Update 14 ausgeliefert Die letzte geplante Version von Java SE 6 war Java SE 6 Update 45 sie wurde trotz angekundigtem End of Public Updates dem Ende offentlicher Aktualisierungen fur Java SE 6 fur Februar 2013 im April 2013 nachgereicht Die aktuelle Version von Java EE 6 ist Java EE 6 Update 4 Im Dezember 2012 begann Oracle versuchsweise einige Installationen automatisch von JavaSE 6 auf JavaSE 7 zu aktualisieren Fur Februar 2013 war geplant alle installierten 32 Bit Versionen uber den automatischen Mechanismus auf Java 7 zu aktualisieren 40 End of Public Updates das Ende offentlicher Aktualisierungen erreichte JavaSE 6 im Februar 2013 32 Version 7 Bearbeiten Die Java Version 7 wurde am 28 Juli 2011 fertiggestellt Vor allem wurden bestehende Funktionalitaten verbessert und erweitert Das sind unter anderem Eine neue Dateisystem API NIO 2 die die Geschwindigkeit von Dateisystemoperationen verbessert bessere Moglichkeiten zum Kopieren und Verschieben von Dateien bietet Methoden zum Traversieren von Verzeichnisstrukturen enthalt und die zuverlassige Erkennung und Behandlung von symbolischen Links erlaubt Bibliotheken fur die Netzwerkprotokolle Stream Control Transmission Protocol SCTP Sockets Direct Protocol SDP und TLS 1 2 Speziell unter Windows wird nach Moglichkeit nun ein neuerer IPv6 Netzwerk Stack verwendet Aktualisierung der Unicode Unterstutzung auf Unicode 6 0 von Unicode 4 0 in Java 6 der Datenbankschnittstelle JDBC und der Gebietsschemaparameter Locale die nun die Standards IETF BCP 47 und UTR 35 implementiert Das mit Java 6 Update 10 eingefuhrte Look and Feel Nimbus wird fester Bestandteil der Spezifikation Eine XRender Pipeline fur Java 2D die die Darstellung von grafischen Elementen auf Linux beschleunigt Verbesserte Unterstutzung des Java Bytecode fur dynamische Programmiersprachen Kleinere Sprachverbesserungen im Rahmen des Project Coin wie die Nutzbarkeit von Zeichenketten in switch Anweisungen 41 Eine Liste sowie detaillierte Beschreibungen der mit Java 7 umgesetzten Funktionalitaten sind der Dokumentation des OpenJDK Projektes Java 7 zu entnehmen 42 Java 7 erreichte End of Public Updates das Ende offentlicher Aktualisierungen im April 2015 32 Die letzte offentlich verfugbare Version von Java 7 war Update 80 vom 14 April 2015 die auch nicht kritische Fehlerbehebungen enthielt 43 44 Die Premium Unterstutzung fur Version 7 war bis Juli 2019 vorgesehen die Erweiterte Unterstutzung bis Juli 2022 32 Version 8 Bearbeiten Java 8 erschien am 18 Marz 2014 Es ist die erste LTS Version nach dem neuen Support Schema von Oracle 7 Fur sie gab es offentliche und kostenlose Updates bis inkl Januar 2019 45 Seitdem ist fur den Abruf uber die Oracle Webseite eine Registrierung erforderlich damit kommerzielle Nutzer bis Marz 2022 auf kostenlose Updates und danach bis Ende 2030 auf kostenpflichtige Updates zugreifen konnen 11 Parallel dazu lasst sich uber Oracles separate Java Webseite die jeweils aktuelle Version auch ohne Registrierung herunterladen Stand 24 April 2021 46 Mit Java 8 wurden ursprunglich fur Java 7 geplante Neuerungen nachgereicht und Synergien eingearbeitet die sich aus dem Kauf von Java durch Oracle ergaben Unter anderem wurden folgende Neuerungen umgesetzt 47 Integration von Oracle JRockit Funktionalitaten wie Verbessertes Contended Locking ins OpenJDK Virtuelle Erweiterungsmethoden und Closures Projekt Lambda Durch Projekt Lambda ermoglichte Erweiterungen der Collections API Neue Date and Time API ahnlich Joda Time Verbesserungen bei der Garbage Collection Reflection Collections Generics und Annotations Weitere kleinere Sprachverbesserungen wie beispielsweise Annotationen fur Java Typen Diverse Verbesserungen hinsichtlich Sicherheit Diverse Leistungsverbesserungen vor allem hinsichtlich Parallelisierung Methodenimplementierung in Interfaces Default Interface 48 Version 9 Bearbeiten Java 9 ist am 21 September 2017 erschienen 49 Sie ist eine Non LTS Version 7 und es gibt daher nur Updates bis zum Release der Nachfolgeversion Java 9 brachte mit Project Jigsaw ein neues Modulsystem das Java um Module als neues Sprachfeature erweitert Jigsaw brachte ebenfalls eine grundlegende Strukturanderungen der Java Plattform mit sich 50 51 Das Project Kulla brachte eine Integration der jshell 52 in Java Version 10 Bearbeiten Java 10 erschien am 20 Marz 2018 und somit wie im Herbst 2017 angekundigt nur 6 Monate nach Version 9 Sie ist ebenfalls eine Non LTS Version 7 Version 11 Bearbeiten Java 11 wurde am 25 September 2018 als LTS Version veroffentlicht 13 Fur den produktiven Einsatz von Oracle JRE ist seit dieser Version eine kostenpflichtige Java SE Subscription erforderlich Lediglich in Entwicklungs und Testumgebungen bleibt es kostenfrei nutzbar Andere Laufzeitumgebungen wie OpenJDK Azul IBM SDK bieten andere kostenfreie kommerzielle Support Zeitraume 53 Version 12 Bearbeiten Java 12 wurde am 19 Marz 2019 veroffentlicht 54 Version 13 Bearbeiten Java 13 wurde am 17 September 2019 veroffentlicht 55 Version 14 Bearbeiten Java 14 wurde am 17 Marz 2020 veroffentlicht 56 Version 15 Bearbeiten Java 15 wurde am 15 September 2020 veroffentlicht 57 Version 16 Bearbeiten Java 16 wurde am 16 Marz 2021 veroffentlicht 58 Version 17 Bearbeiten Java 17 ist eine LTS Version und wurde am 14 September 2021 veroffentlicht 59 Version 18 Bearbeiten Java 18 wurde am 22 Marz 2022 veroffentlicht 60 Version 19 Bearbeiten Java 19 wurde am 20 September 2022 veroffentlicht 61 Version 20 Bearbeiten Java 20 wurde am 21 Marz 2023 veroffentlicht 62 Version 21 Bearbeiten Java 21 ist eine LTS Version und wurde am 19 September 2023 veroffentlicht 63 Lizenz BearbeitenAm 13 November 2006 gab Sun bekannt dass bis Ende des zweiten Quartals 2007 die komplette Java Technik unter den Lizenzbestimmungen der GPL Version 2 veroffentlicht werden soll 64 65 Am 8 Mai 2007 teilte man mit dass dies fur den Grossteil der Technik geschehen sei 66 Ein Problem fur Entwickler freier Software bestand bis dahin darin dass Java zwar kostenlos war jedoch nicht die Richtlinien fur freie Software erfullte Probleme entstanden in diesem Rahmen vor allem dann wenn beim Erstellen von Programmen unfreie Klassen von Sun verwendet wurden die freie Java Compiler oder Java Laufzeitumgebungen nicht verwenden konnen Anwender von freien JVMs waren in diesen Fallen gezwungen auf die JVM von Sun zuruckzugreifen In diesem Zusammenhang wurde auch von der Java Falle Java Trap 67 gesprochen Engagierte Entwickler haben darauf reagiert und eine beachtliche Menge an freier Software zur Interpretation Kompilierung und Ausfuhrung von Java Programmen entwickelt wie z B GNU Classpath GNU Compiler for Java Kaffe Apache Harmony oder IcedTea Jedoch wurden die Lizenzbedingungen fur Oracles Java Compatibility Kit JCK von der Apache Software Foundation 68 und der Linux Standard Base Arbeitsgruppe als bewusste Verhinderung von alternativen Implementierungen wahrgenommen was u a zum Ausschluss von Java aus dem aktuellen LSB Standard 4 1 fuhrte 69 Anwendungen Bearbeiten Hauptartikel Java Anwendung Java findet seinen Einsatz zum Beispiel in folgenden Bereichen Im Inter Intranet als serverseitiger Dienst in Form eines Application Servers z B Apache Tomcat JBoss GlassFish u v m Im Inter Intranet als clientseitige Anwendung als Java Applet oder Rich Internet Application zum Beispiel durch JavaFX Fur die Erstellung von plattformunabhangigen Desktopanwendungen bekannte Beispiele dafur sind z B die Entwicklungsplattformen Netbeans und Eclipse Anwendungen auf Chipkarten sog Java Cards Fur Anwendungen auf Mobiltelefonen basierend auf angepassten Java Versionen wie JavaME oder Dalvik Als Embedded Java in so genannten Eingebetteten Systemen das heisst auf Computern die in technische Gerate integriert sind und diese steuern Dazu gehoren unter anderem Steuergerate fur Maschinen Aufzuge Haushaltsgerate und Gerate der Unterhaltungselektronik Als Echtzeitsystem mittels Java Real Time beispielsweise fur Verkehrssteuerungsanlagen Kritik BearbeitenJava bietet vor allem auf Grund seiner Ausfuhrung in einer virtuellen Maschine einige Sicherheitsvorteile gegenuber direkt ausgefuhrten Programmiersprachen Ein Applet einer Webseite unterliegt beispielsweise sicherheitsbedingten Einschrankungen durch die virtuelle Maschine dasselbe gilt analog fur Java Applikationen All diese laufen in einer virtuellen Maschine und durfen nicht frei auf beliebige Ressourcen zugreifen Direkt ausgefuhrte Programmiersprachen ohne virtuelle Maschine bieten diese Sicherheitsvorkehrungen gar nicht und sind somit im Vergleich zu Java maximal unsicher Existieren jedoch auf Grund von Fehlern in der virtuellen Maschine oder in der Klassenbibliothek Schwachstellen in diesen Sicherheitstechniken so kann ein bosartiges Applet oder eine bosartige Applikation diese Schwachstellen ausnutzen und unter Umstanden auf Ressourcen zugreifen auf die sie im Normalfall keine Zugriffsrechte hatte Java war 2012 bis 2013 mehrfach wegen derartiger Fehler in den Schlagzeilen 70 71 Im August 2012 tauchte beispielsweise ein offentlich verfugbarer Exploit im Internet 72 auf der samtliche Sandboxing und sonstige Sicherheitsverfahren von Java umgeht indem er sie einfach abschaltet 73 Ein paar Tage spater war dieser Exploit CVE 2012 4681 74 in zahlreichen Exploit Frameworks integriert darunter auch in Metasploit und Blackhole Oracle veroffentlichte daraufhin ein Notfall Update Experten fanden aber auch in den gepatchten Java Versionen Sicherheitslucken Am 10 Januar 2013 gab das renommierte Computermagazin c t aus Sicherheitsgrunden eine Empfehlung zur Deinstallation des Java Plug ins heraus beim Einsatz des Internet Explorers sogar zur vollstandigen Deinstallation von Java 75 Am 11 Januar 2013 schloss sich das BSI dieser Empfehlung an 76 Mit den ausserplanmassigen bzw vorgezogenen Java Updates 7u11 bis 7u13 wurden gemass Oracle die Sicherheitsprobleme gelost 77 Das BSI gab daraufhin Entwarnung fur die Verwendung von Java 78 Weblinks BearbeitenKunden und Entwicklerdownloads deutsch Java Technologies englisch Ressourcen fur Java Entwicklung und Nutzung bei java net 1 2 Vorlage Toter Link java net Seite nicht mehr abrufbar festgestellt im Januar 2020 Suche in Webarchiven Critical Patch Updates Security Alerts and BulletinsEinzelnachweise Bearbeiten The Java Language Environment 1 2 Design Goals of the JavaTM Programming Language James Gosling und Henry McGilton Mai 1996 Java Language Overview 1995 Sun Whitepaper Wolfgang Weigend Die Java Plattform Strategie Flash Folien zum Vortrag Oracle 24 August 2011 S 5 abgerufen am 8 Januar 2012 a b Reference J2SE Code Names In Java Platform Standard Edition Java SE Sun Microsystems online abgerufen am 8 Januar 2012 Steven Chan Understanding J2SE 1 3 End of Life Implications for Apps 11i Online abgerufen am 26 Juli 2018 Java SE EOL Policy Nicht mehr online verfugbar 26 Oktober 2011 archiviert vom Original am 14 November 2011 abgerufen am 26 Juli 2018 englisch a b c d e f Oracle Java SE Support Roadmap Abgerufen am 8 Juli 2018 a b Mustang and Dolphin we ll miss you Memento vom 16 November 2006 im Internet Archive Verzicht auf Codenamen ab JSE 6 0 Ray Gans s Blog 15 August 2006 abgerufen am 12 Oktober 2009 Java 7 Releases nach Datum Seite bei Java com Abgerufen am 20 November 2013 JDK 8 Schedule Open JDK 20 August 2012 abgerufen am 5 Oktober 2012 englisch a b c d e f g h i j k l m n o Oracle Java SE Support Roadmap Oracle 2 April 2021 abgerufen am 24 April 2021 englisch JDK 9 Open JDK 5 Januar 2017 abgerufen am 5 Januar 2017 englisch a b Alexander Neumann Java 11 bringt nicht nur ein geandertes Supportmodell heise online 25 September 2018 abgerufen am 3 Oktober 2018 JDK 12 Abgerufen am 8 Oktober 2018 JDK 13 Abgerufen am 5 November 2019 JDK 14 Abgerufen am 13 April 2020 JDK 15 Abgerufen am 8 Februar 2021 JDK 16 Abgerufen am 9 April 2021 JDK 17 Abgerufen am 23 Oktober 2021 JDK 18 Abgerufen am 12 November 2022 JDK 19 Abgerufen am 12 November 2022 JDK 20 Abgerufen am 31 Marz 2023 a b c d JDK Releases Abgerufen am 17 August 2023 Robert Liguori Patricia Liguori Java 8 Pocket Guide Instant Help for Java Programmers O Reilly Media 2014 ISBN 978 1 4919 0086 4 a b c Java SE 9 amp JDK 9 Abgerufen am 8 Oktober 2018 englisch a b c Java SE 10 amp JDK 10 Abgerufen am 8 Oktober 2018 englisch cd jdk11 src find name package info java wc lines a b Java 11 API Reference Abgerufen am 8 Oktober 2018 englisch cd jdk11 src find name module info java wc lines news cnet com sun com a b c d e Oracle Java SE Support Roadmap oracle com 22 April 2015 abgerufen am 27 April 2015 englisch Version 1 5 0 or 5 0 Java 5 Release Notes abgerufen am 5 Februar 2009 Java API Specifications Oracle abgerufen am 17 Mai 2019 JSR 203 More New I O APIs for the Java Platform NIO 2 In Java Community Process 2011 abgerufen am 5 Oktober 2014 Oracle com Next Generation Java Plug In Technology Introduced in Java SE 6 update 10 Java Runtime Environment Installation for JavaSE 6u10 JavaTM Quick Starter for JavaSE 6u10 Java SE 6 Update 10 FAQ JavaTM SE 6 Update Release Notes oracle Java 6 Auto Update to Java 7 oracle com abgerufen am 4 Januar 2013 Java Programming Language Enhancements Liste der Core Java Neuheiten in Versionen 5 6 7 JDK 7 Features Java SE Runtime Environment 7 Downloads oracle com April 2015 abgerufen am 27 April 2015 englisch Java Freigaben Versionen 7 und 8 java com 18 Juli 2017 abgerufen am 18 Oktober 2017 Gabriela Motroc No more public updates for Java 8 business users after January 2019 Poll JAXenter JAXenter 23 April 2018 abgerufen am 24 April 2021 englisch Java Oracle abgerufen am 24 April 2021 englisch What s New in JDK 8 Oracle abgerufen am 24 April 2021 englisch How does Java 8 new default interface model works bei stackoverflow com JDK 9 In OpenJDK Oracle Corporation and or its affiliates 7 Juni 2017 abgerufen am 15 Juni 2017 englisch Projektplanung fur JDK 9 Nachster Schritt der Java Modularisierung Project Jigsaw wandert in JDK 9 Branch Heise Verlag 12 Marz 2016 abgerufen am 22 Februar 2017 Kristine Schaal Rudiger Grammes Martin Lehmann Java 9 bringt das neue Modulsystem Jigsaw Informatik Aktuell 15 Februar 2018 abgerufen am 3 Mai 2019 jshell JEP Open JDK 5 November 2015 abgerufen am 10 November 2015 englisch Hendrik Ebbers Timo Brandstatter Wird Java jetzt kostenpflichtig heise online 28 August 2018 abgerufen am 3 Oktober 2018 JDK 12 In OpenJDK Abgerufen am 22 Marz 2019 JDK 13 In OpenJDK Abgerufen am 17 September 2019 JDK 14 In OpenJDK Abgerufen am 25 Marz 2020 JDK 15 Abgerufen am 6 Oktober 2020 JDK 16 Abgerufen am 9 April 2021 openjdk java net openjdk java net openjdk java net Abgerufen am 2 November 2022 openjdk java net Abgerufen am 19 September 2023 englisch openjdk java net Abgerufen am 19 September 2023 englisch sun com Memento vom 26 August 2007 im Internet Archive Mike Loukides At last Open Source Java Nicht mehr online verfugbar November 2006 archiviert vom Original am 6 Oktober 2014 abgerufen am 6 Oktober 2014 JAVAONE Sun The bulk of Java is open sourced Memento vom 14 April 2008 im Internet Archive Richard Stallman Frei aber gefesselt die Java Falle 12 April 2004 The ASF Resigns From the JCP Executive Committee In The Apache Software Foundation Blog Apache Software Foundation 9 Dezember 2010 abgerufen am 5 Oktober 2014 Linux Standard Base 4 1 ohne Java heise de 11 Marz 2011 abgerufen am 16 November 2011 Java im Status Trial Use in die Linux Standard Base 4 0 aufgenommen wurde aus der neuen Version wieder entfernt Grund dafur sind Lizenzierungsprobleme mit dem Java Compatibility Kit JCK dessen Bestehen Voraussetzung dafur ist dass sich eine Java Implementierung Java kompatibel nennen darf Die Apache Software Foundation wirft Oracle wie schon zuvor Sun vor mit den Lizenzbedingungen des JCK konkurrierende Java Implementierungen auszuschliessen Java 0 Day unter der Lupe Heise Security abgerufen am 22 Februar 2013 Grosses Notfall Update fur Java Heise Security abgerufen am 22 Februar 2013 Java Exploit CVE 2012 4681 Archiviert vom Original am 17 Februar 2013 abgerufen am 23 Marz 2013 Java 0 Day unter der Lupe Heise Security abgerufen am 22 Februar 2013 CVE 2012 4681 bei MITRE englisch Gefahrliche Lucke in aktueller Java Version In Heise Security Abgerufen am 10 Januar 2013 Kritische Schwachstelle in aktueller Java Laufzeitumgebung Bundesamt fur Sicherheit in der Informationstechnik BSI archiviert vom Original am 18 Januar 2013 abgerufen im 1 Januar 1 February 2013 Critical Patch Update for Java SE Released Abgerufen am 5 Februar 2013 Schwachstelle in aktueller Java Laufzeitumgebung geschlossen Update des Herstellers liegt vor BSI empfiehlt Internetnutzern Einspielung des Updates Bundesamt fur Sicherheit in der Informationstechnik BSI 14 Januar 2013 abgerufen am 26 Marz 2013 Nach Installation des Java Sicherheitsupdates konnen auch die Browser Plugins wieder aktiviert und genutzt werden Abgerufen von https de wikipedia org w index php title Java Technologie amp oldid 237481973