Anwendungen auf neue Java-Versionen migrieren

Bei der Migration von Anwendungen ist es wichtig, die Unterschiede zwischen den Java-Versionen zu beachten.

Anwendungen müssen geändert werden, wenn sie APIs verwenden, die in späteren Versionen von Java entfernt wurden.

Verfügbare Versionen

  • 6.3 IBM® Semeru Runtime® Certified Edition for z/OS® version 17 und Version 21
  • 6.16.2 IBM Semeru Runtime Certified Edition for z/OS version 11, Version 17 und Version 21
  • IBM 64-Bit-SDK für z/OS, Java™ Technology Edition, Version 8

Weitere Informationen finden Sie unter Java Runtime Environments.

Vorteile des Umstieg auf eine neue Java-Version

Im Folgenden sind einige der Vorteile aufgeführt, die sich aus der Arbeit mit der neuesten Java-Version ergeben:
  • Profitieren Sie von der neuen API.
  • Bleiben Sie mit Sicherheitskorrekturen auf dem Laufenden.
  • Bleiben Sie mit Leistungsverbesserungen auf dem neuesten Stand.
  • Profitieren Sie von verbesserter Interoperabilität mit verteilten Plattformen.

Programme auf veraltete APIs überprüfen

Die Notwendigkeit, Änderungen vorzunehmen, wenn Sie zu einer späteren Version wechseln, hängt davon ab, ob Ihr Programm APIs verwendet, die in späteren Versionen von Java entfernt wurden. Weitere Informationen finden Sie unter

Überprüfen Sie Ihre Java-Programme auf Kompatibilitätsprobleme zwischen dem unterstützten IBM SDK for z/OS und früheren Versionen. Code, der mit einer älteren Version von Java kompiliert wurde, wird weiterhin ausgeführt, es sei denn, er verwendet APIs, die in der neueren Version von Java oder CICSentfernt wurden. Wenn Code APIs verwendet, die entfernt wurden, nehmen Sie alle erforderlichen Änderungen vor, damit Ihre Programme mit den unterstützten Versionen ausgeführt werden können.

Überprüfen Sie zusätzlich zu den Java-APIs Ihre Programme auf veraltete oder entfernte CICS -JCICS-APIs. Weitere Informationen finden Sie unter Upgrade der Java-Umgebung durchführen.

Dateikodierung und UTF-8 als Standardzeichensatz

Java 21 Gilt für Java 21.

In Java 21 ist UTF-8 der Standardzeichensatz für Standard-Java-APIs, mit Ausnahme der Kodierung für die Konsoleneingabe und -ausgabe. Frühere Versionen von Java verwenden einen EBCDIC-Standardzeichensatz. Die Verarbeitung von EBCDIC-basierten Daten ist in CICS üblich, daher ist diese Änderung von großer Bedeutung.

Anwendungen, die für die Verwendung mit früheren Java-Versionen entwickelt und getestet wurden, verhalten sich wahrscheinlich anders mit Java 21. Überprüfen Sie Ihre Java-Programme, um sicherzustellen, dass sie nicht davon ausgehen, dass die Standardcodierung EBCDIC ist.

Anwendungen, die auf Liberty bereitgestellt werden, sind nicht betroffen, da Liberty nur unterstützt wird, wenn es unter einer JVM mit UTF-8 oder ISO-8859-1 in CICS ausgeführt wird.

JCICS-APIs, die String-Objekte verwenden, verarbeiten Codepage-Konvertierungen automatisch. Aktualisieren Sie Java-Anwendungen, damit sie String-basierte JCICS-Methoden anstelle der älteren JCICS-Methoden verwenden, die mit byte[]-Daten interagieren.

Wenn der Anwendungscode Java-Byte[]-Daten in String-Objekte konvertiert oder umgekehrt, müssen Sie die korrekte Codierung explizit angeben. Seien Sie besonders vorsichtig bei API-Aufrufen, die den Standardzeichensatz verwenden, wie z. B.:
  • Anfragen an String.getBytes().
  • InputStreamReader, FileReader, OutputStreamWriter, FileWriter und PrintStream APIs des java.io -Pakets.
  • Formatter und Scanner APIs des java.util -Pakets.
  • URLEncoderund URLDecoder APIs des java.net -Pakets.

Wenn -Dfile.encoding=COMPAT im JVM-Profil festgelegt wird, wird das Verhalten von Java 17 wiederhergestellt, bei dem die native Kodierung basierend auf dem Gebietsschema bestimmt wird. Diese Option sollte mit Vorsicht verwendet werden, da Java-Softwarebibliotheken in Zukunft wahrscheinlich überall UTF-8 voraussetzen werden.

Weitere Informationen, file.encoding Eigenschaftswerte und die automatische Konvertierung von Eingabedateien finden Sie unter Dateikodierung und UTF-8 als Standardzeichensatz in der IBM Semeru Runtime Certified Edition for z/OS dokumentation.