/ Software-Entwicklung / Oracle bereitet Entwickler auf Java 9 vor

Oracle bereitet Entwickler auf Java 9 vor

Gerfried Steube on February 20, 2017 - 11:28 am in Software-Entwicklung

Der Leitfaden mit Hinweisen zur Vorbereitung von Anwendungen auf die kommende Java-Version macht Hoffnung darauf, dass Oracle den Zeitplan einhält. Demnach dürfte Java 9 im Sommer erscheinen.

Offensichtlich steuert Java 9 auf das geplante Release im Sommer zu. Nun hat Oracle einen Leitfaden veröffentlicht, der Entwickler auf den bevorstehenden Umstieg vorbereiten soll. Dabei geht es diesmal nicht um die neuen Funktionen des JDK 9 (Java Development Kit), sondern darum, wie sich vorhandene Programme anpassen lassen. Anwendungen, die nur die Java SE APIs verwenden, laufen möglicherweise ohne Änderungen.

Abhängigkeiten und Fehlermeldungen

Schwieriger wird es, sobald Werkzeuge und Bibliotheken von Drittanbietern ins Spiel kommen. Entwickler sollten zusehen, dass sie aktuelle Versionen finden, die mit dem JDK 9 zusammenarbeiten. Zum derzeitigen Zeitpunkt müssen sie dafür freilich meist auf Early-Access-Varianten zurückgreifen. Solche existieren beispielsweise für die bekanntesten Entwicklungsumgebungen IntelliJ IDEA, Eclipse und NetBeans. Für FOSS-Projekte (Free Open Source Software) verweist der Leitfaden auf das Wiki zum OpenJDK: Unter Quality Outreach ist der Status zahlreicher Tools und Bibliotheken, unter anderem von Apache Software Foundation und Eclipse Foundation, zu finden.

Der nächste Schritt erfordert die Analyse der Compiler-Warnungen und -Fehler. Die Meldung IllegalAccessError könnte darauf hindeuten, dass das Programm interne APIs des JDK verwendet. Den direkten Zugriff verweigert JDK 9 standardmäßig. Das jdeps-Tool hilft beim Finden von Alternativen. Weitere Fehlerquellen könnten neuerdings untersagte Variablennamen wie beispielsweise ein alleinstehender Unterstrich (“_“) sein.

Geänderte Verzeichnisse

Der Leitfaden weist auch auf die veränderte Verzeichnisstruktur für JDK und JRE (Java Runtime Environment) hin: Sie enthalten jeweils die Verzeichnisse bin mit den ausführbaren Dateien, conf mit Files wie .properties und .policy, die Entwickler zum Konfigurieren nutzen und die bisher im lib-Verzeichnis waren. Letzteres existiert weiterhin und enthält erwartungsgemäß die Bibliotheken. JRE und JDK weisen die gleiche Struktur auf, wobei nur Letzteres die zum Entwickeln benötigten Werkzeuge wie javac an Bord hat. Die zusätzlichen Oberverzeichnisse jdk und jre entfallen in Java 9 und damit auch die potenziell doppelt vorhandenen gemeinsamen Binaries.

Da die Java-Archive rt.jar und tools.jar im modular aufgebauten Java 9 nicht mehr existieren und die dort enthaltenen Funktionen in den Bibliotheken zu finden sind, ergeben sich einige Änderungen, die Codeanpassungen erfordern könnten. Ebenso verzichtet das JDK 9 auf das bisherige Vorgehen zum Laden von Extension-Klassen. Daher verweigern javac und java die Arbeit, falls die java.ext.dirs-Property gesetzt ist oder ein libt/ext-Verzeichnis existiert. Dasselbe gilt für die java.endorsed.dirs-Property und das lib/endorsed-Verzeichnis.

Der Leitfaden listet darüber hinaus zahlreiche APIs auf, die im kommenden JDK fehlen beziehungsweise durch neue ersetzt wurden. Darüber hinaus gibt es einige Änderungen bei den Werkzeugen. So entfällt JavaDB, da die Datenbank lediglich eine Umbenennung des Apache-Derby-Projekts ist und sich somit nahtlos durch das Original ersetzen lassen soll. Außerdem gibt es einige plattformspezifische Änderungen unter anderem für macOS und Anpassungen beim Garbage Collector.

Weitere Details lassen sich dem Migration Guide entnehmen. Das neu eingeführte -release-Flag für den javac-Compiler ermöglicht das zusätzliche Kompilieren für ältere Plattformversionen. Nach der derzeitigen Planung soll die fertige Version des JDK am 27. Juli erscheinen. (rme)

Read more on: Source

Comments are disabled