![Mit Java 17 ist eine neue Version mit LTS-Support verfügbar. (Grafik: Oracle) Neuer LTS-Release: Java 17 ist da – das steckt drin](https://images.t3n.de/news/wp-content/uploads/2016/12/java-logo-hero.jpeg?class=hero)
Mit Java 17 ist eine neue Version mit LTS-Support verfügbar. (Grafik: Oracle)
Alle sechs Monate erscheint eine neue Java-Version – die bis zum Erscheinen der nächsten unterstützt wird. LTS- oder Long-Term-Support-Releases wie Java 17 erhalten hingegen in der Regel Support für die Dauer von acht Jahren. Für die LTS-Releases Java 8 und 11 gilt ein erweiterter Support bis Dezember 2030 respektive September 2026. Anbieter kostenloser Open-JDK-Versionen gleichen ihre Supportzeiträume in der Regel an diese Daten an, vereinzelt überschreiten sie sie sogar.
Das ist neu
Java 17 bringt einige neue Features mit, allerdings wenig Bahnbrechendes. Unter den größeren Neuerungen sind sogenannte geschlossene Klassen, die bereits in Java 15 in einer Preview verfügbar waren. In geschlossenen Klassen ist die Vererbung auf bestimmte Typen beschränkt. Sie verfügen über ein permits
-Statement, das erlaubte Subklassen spezifiziert.
public abstract sealed class Color
permits red, green, blue { ... }
Die native Unterstützung für macOS wurde verbessert, einschließlich einer neuen Rendering-Pipeline für Java 2D mit macOS Metal und einer Portierung auf Apple Silicon. Auch ein neuer Random-Number-Generator hat es in den Release geschafft. Das Verhalten von class.java.util.Random
soll dadurch allerdings nicht beeinflusst werden.
Neu in Java 17 ist die starke Abgrenzung von JDK-Internalen, wodurch die Blockierung des Zugriff auf interne APIs nicht mehr so leicht umgangen werden kann. Das vielgenutzte sun.mic.Unsafe-Statement bleibt aus Kompatibilitätsgründen bestehen.
Project Panama und ein erweitertes Switch-Statement in der Preview
Ein erweitertes Switch-Statement mit Pattern-Matching sowie die Foreign-Function-and-Memory-API sind in der neuen Version als Preview verfügbar. Laut der Doku soll die API eine sicherere und einfachere Alternative zum Java-Native-Interface bieten. Auch bekannt unter dem Namen Project Panama, ermöglicht es, native Bibliotheken in Java-Programmen aufzurufen und native Daten zu verarbeiten.
Und das ist weg
Entfernt wurden ebenfalls einige Features. Wahrscheinlich das prominenteste ist die Java Applet API. Die Schnittstelle geht zurück bis auf die Anfangstage der Programmiersprache und wird in der neuen Version 17 als veraltet markiert. Das Applet-Browser-Plugin wurde bereits in Version 11 entfernt – vollständig verschwinden soll die API voraussichtlich mit dem Erscheinen von Version 18 in sechs Monaten.
Ein weiteres Feature, das entfernt wurde, ist der experimentelle Ahead-of-Time-Compiler. Laut der Doku fand das Feature seit seiner Einführung wenig Anklang. Hinzu komme, dass der Wartungsaufwand unverhältnismäßig hoch sei. Der Hotspot-JIT-Compiler existiere hingegen noch – wer partout nicht auf den entfernten AOT-Compiler verzichten kann, wird an Oracles GraalVM verwiesen.
Wenig Probleme bei der Migration von 11 auf 17 erwartet
Die Migration von Java 11 auf die neue LTS-Version soll indes nicht so komplex sein, wie der Wechsel von der vorletzten LTS-Version Java 8 auf die letzte, JDK 11. Gegenüber the Register sagte Dalia Abo Sheasha, Java Developer Advocate bei Jet-Brains, die neu eingeführten Sealed Classes stellten dabei wahrscheinlich die größte Schwierigkeit. Sie habe vorgeschlagen, die Illegal-Access-Flag vorheriger Versionen beizubehalten, mit der Einführung der Neuerung sei diese jetzt nicht mehr vorhanden.