将应用程序迁移到新的 Java 版本
在迁移应用程序时,审查 Java 版本之间的差异非常重要。
如果应用程序使用在更高版本的 Java 中移除的 API ,那么必须修改这些应用程序。
可用版本
- 6.3 IBM® Semeru Runtime® Certified Edition for z/OS® 第 17 版和第 21 版
- 6.16.2IBM Semeru Runtime Certified Edition for z/OS 第 11 版、第 17 版和第 21 版
- IBM 64 位 SDK for z/OS ,Java™ 技术版 , 版本 8
有关更多信息,请参阅 Java 运行时环境。
迁移到新的 Java 版本的优点
- 从新 API 中获取优势。
- 随时更新安全修订。
- 保持最新状态,提高性能。
- 从改善与分布式平台的互操作性中获益。
检查您的程序是否存在不推荐使用的 API
- 从早期版本的 IBM SDK、Java 技术版迁移到 SDK、Java 技术版文档中的 IBM Semeru Runtime Certified Edition for z/OS 和
- 通过 IBM Developer 轻松迁移到最新版本的 Java。
检查 Java 程序以了解受支持的 IBM SDK for z/OS 与先前版本之间的兼容性问题。 使用较低版本的 Java 编译的代码将继续运行,除非它使用在较高版本的 Java 或 CICS中除去的 API。 如果代码确实使用了已除去的 API ,请进行任何必要的更改以使您的程序能够与受支持的版本一起运行。
除 Java API 外,请检查您的程序是否存在不推荐使用的或已除去的 CICS JCICS API。 有关更多信息,请参阅 升级 Java 环境。
文件编码和 UTF-8 作为默认字符集
Java 21 适用于 Java 21。
在Java 21中,标准Java API的默认字符集为 UTF-8 ,控制台输入和输出编码除外。 早期版本的Java使用EBCDIC默认字符集。 在 CICS中,处理基于EBCDIC的数据很常见,因此这一变化意义重大。
为早期版本的Java设计和测试的应用程序在Java 21上可能会有不同的表现。 检查您的Java程序,确保它们不会假定默认编码为EBCDIC。
部署到 Liberty 的应用程序不受影响,因为 Liberty 仅在 CICS 中具有 UTF-8 或 ISO-8859-1 字符编码的 JVM 下运行时才受支持。
使用字符串对象的 JCICS API 可自动处理代码页转换。 更新Java应用程序,使用基于字符串的JCICS方法,而不是与字节数组数据交互的旧JCICS方法。
- 请致电
String.getBytes()。 InputStreamReader、FileReader、OutputStreamWriter、FileWriter和PrintStream是java.io软件包的API。Formatter以及 软件包中的 API。java.utilScannerURLEncoder,以及java.net软件包的URLDecoderAPI。
在JVM配置文件中设置 -Dfile.encoding=COMPAT 将恢复为Java 17的行为,其中本地编码根据区域设置确定。 应谨慎使用此选项,因为Java软件库将来可能会在所有地方使用 UTF-8 编码。
更多信息、 file.encoding 属性值和输入文件的自动转换,请参阅文件编码和 UTF-8 作为默认字符集。 IBM Semeru Runtime Certified Edition for z/OS 文件。