迁移到 Java Platform , Standard Edition 7 或 8

WebSphere® Application Server 版本 8.5 支持 Java™ Platform , Standard Edition (Java SE) 6 , 7 和 8 规范,在修订包 8.5.5.2 中添加了 Java SE 7.1 ,在修订包 8.5.5.9中添加了 Java SE 8。 对将 Java SE 6 与 WebSphere Application Server 配合使用的支持将于 2018 年 4 月结束,但您可以迁移到 Java SE 8 以帮助确保产品安装保持安全。

有关此任务

注意: 从 V 8.5.5.11开始, Java 的缺省版本为 Java SE 6 或 Java SE 8。 因此,您可以接受缺省值,并将 Java SE 6 或 Java SE 8 安装为包含在 WebSphere Application Server 的 /java/java64 目录中的 Java SE 版本,缺省情况下在服务器和节点配置期间使用。 Java 8 是推荐使用的 Java SDK,因为它提供了最新功能部件和安全更新。 您可以继续使用 Java SE 6,但是在 2018 年 4 月支持结束后无法提供任何服务,这可能会使您的环境暴露在安全风险中。
在 WebSphere Application Server V8.5.5.11 上进行安装时,Java SE 7 和 Java SE 7.1(对 Solaris 和 HP 不可用)也是可行选项。
  • Java SE 7.0 的位级别基于在初次安装 WebSphere Application Server 期间选择的位级别。 如果安装了 32 位 WebSphere Application Server,那么只能安装 32 位 Java SE 7.0。 如果安装了 64 位 WebSphere Application Server,那么只能安装 64 位 Java SE 7.0。
  • 安装可选 Java SE 7.0 或 Java SE 7.1 并不意味着概要文件可以利用此新版本的 Java。 可以使用 managesdk 命令来切换 Java,也可以使用 WebSphere Application Server 管理控制台 (wsadmin) 来进行切换。

[8.5.5.14 或更高版本]从 V8.5.5.14 开始,Java SE 8 是缺省 Java。 更新到 8.5.5.14时,任何使用 Java SDK 6 的现有概要文件都将替换为 Java SDK 8。 您可以继续使用 Java SDK Java Technology Edition V 7.0 和 V 7.1,但在支持在 2022 年 7 月结束后无法提供任何服务,这可能会使您的环境面临安全风险。

有关 Java SE 6 , 7 和 7.1 服务结束的更多信息,请参阅 WebSphere Application Server V8.5 中的 Java SE 6 , 7 和 7.1 服务结束

com.ibm.websphere.IBMJAVA.v80 产品将停用,2020 年 3 月后不会为此产品提供任何修订包或临时修订。 如果此产品是在 2020 年 3 月之后随 WebSphere Application Server V8.5.5 安装的,请将其卸载并切换到同一软件包组中的 WebSphere Application Server 软件包提供的缺省 Java SE 8 SDK。 通过缺省 Java SE 8 SDK,您将继续接收 Java SE 8 SDK 支持,包括安全性更新。

[8.5.5.18 或更高版本]从 8.5.5.18 for Linux on POWER8 Little Endian (LE) 开始, Java 的缺省版本为 Java SE 7.1 或 Java SE 8。 因此,您可以接受缺省值,并将 Java SE 7.1 或 Java SE 8 安装为包含在 WebSphere Application Server 的 /java 目录中的 Java SE 版本,缺省情况下在服务器和节点配置期间使用此版本。 Java 8 是推荐使用的 Java SDK,因为它提供了最新功能部件和安全更新。 您可以继续使用 Java SE 7.1,但是在 2022 年 7 月支持结束后无法提供任何服务,这可能会使您的环境暴露在安全风险中。

对于 Linux on POWER8 LE,只能将 user.wasjava=java8 属性与产品的新安装配合使用。 对于 Linux on POWER8 LE,user.wasjava=java8 属性不适用于通过修订包来进行产品升级。

[8.5.5.19 或更高版本]从 8.5.5.19 for Linux on POWER8 Little Endian (LE) 开始, Java 的缺省版本为 Java SE 8。 因此,您可以接受缺省值,并将 Java SE 8 安装为包含在 WebSphere Application Server 的 /java 目录中的 Java SE 版本,缺省情况下在服务器和节点配置期间使用该版本。 您可以通过安装 IBM WebSphere Java SDK V7.1 继续使用 Java SE 7.1 ,但是在 2022 年 7 月支持结束后无法提供任何服务,这可能会使您的环境暴露在安全风险中。

对于 V8.5.5.19 for Linux on POWER8 LE,安装和更新不需要 user.wasjava=java8 属性。

迁移到 Java SE 8 可提供最新的可用 Java 功能部件和标准,并确保应用程序可在受支持的环境中运行多年。 有关新的 Java 功能部件的更多信息,请参阅 Oracle Web 站点上的 Java 中的新增内容 8

虽然您还可以迁移到 Java SE 7 或 7.1,但仅在 2022 年 7 月之前提供对这些版本的支持。 如果选择迁移到 Java SE 7 或 7.1,请计划在该时间之前执行与 Java SE 8 的类似迁移。 有关结束对 Java SE 6 和 Java SE 7 的支持的更多信息,请参阅 已移除的功能部件

迁移到较新的 Java SE 版本时,请决定是否利用应用程序中的任何新的 Java SE 功能,并开始从不推荐的功能进行转换。

过程

  1. WebSphere Application Server 安装至少更新为 Java 版本所需的最低修订包级别。

    如果您是从使用 Java SDK 8 作为缺省值的新安装开始,那么不需要执行步骤 1。

    表 1. Java SE 版本的最低修复包级别一个包含两列的表,其中列出了 Java SE 版本以及安装该版本所需的最低产品修订包级别。
    Java SE 版本 最低修订包级别
    Java SE 8.0 8.5.5.9
    Java SE 7.1 8.5.5.2
    Java SE 7.0 8.5.0.0

    [AIX Solaris HP-UX Linux Windows]有关详细指示信息,请参阅 在分布式操作系统上安装和卸载临时修订和修订包

    [z/OS]有关详细指示信息,请参阅 在 z/OS®上安装和卸载临时修订和修订包

  2. 安装更新的 Java SE 版本。
    注: 如果您是从使用 Java SE 8 作为缺省值的 8.5.5.11 或更高版本的新安装开始,那么不需要执行此步骤。

    V 8.5中,仅由 IBM® WebSphere SDK Java Technology Edition 提供对 Java SE 7 , 7.1和 8 的支持。 这些 Java SDK 是专门针对 WebSphere Application Server进行打包和测试的。 无法使用其他 Java SDK ,例如为 WebSphere Application Server V 9.0 或 Liberty 提供的 SDK。

    [AIX Solaris HP-UX Linux Windows]有关详细指示信息,请参阅 在分布式操作系统上安装和卸载 SDK Java Technology Edition V 8.0 以及 在分布式操作系统上安装和卸载 SDK Java Technology Edition V 7.0 或 7.1

    [z/OS]有关详细指示信息,请参阅 安装 IBM WebSphere SDK Java Technology Edition V 8.0安装 IBM WebSphere SDK Java Technology Edition V 7.0 或 7.1

  3. 通过运行 managesdk 命令来更新 WebSphere Application Server 概要文件所使用的 Java SDK。
    注: 如果您是从使用 Java SE 8 作为缺省值的 8.5.5.11 或更高版本的新安装开始,那么不需要执行此步骤。

    有关更多信息,请参阅 managesdk 命令

    1. 通过运行 managesdk -listavailable确保新的 Java SDK 可用,并记下 SDK 名称 (例如 1.8_64) 以用于后续命令。
    2. 将命令缺省值设置为新 SDK。
      managesdk -setCommandDefault -sdkname 1.8_64
    3. 将新概要文件缺省设置为新 SDK。
      managesdk -setNewProfileDefault -sdkname 1.8_64
    4. 启用现有概要文件以使用新 SDK。
      managesdk -enableProfileAll -sdkname 1.8_64 -enableServers
  4. 根据需要更新现有应用程序。
    1. 决定是否利用应用程序中较新的 Java SE 功能。

      只能将使用 Java SE 8 功能部件的应用程序部署到 V 8.5.5.9 或更高版本的节点,并且只能将使用 Java SE 7.1 功能部件的应用程序部署到 8.5.5.2 或更高版本的节点。 较早的产品版本未提供必需的 Java SE 虚拟机。

    2. 通过设置编译器方式,编译不使用较新的 Java SE 功能在先前 Java 虚拟机级别上运行的应用程序。

      当您编译使用较新的 Java SE 版本构建但旨在按先前规范运行的应用程序时,请为较新的 Java SE 编译器指定 -source-target 方式。 这样做可确保生成的字节码与较早的 Java 虚拟机兼容。

      例如,如果目标 Java 虚拟机处于 1.6 级别,那么当您使用 Java SE 8 编译应用程序时,请指定 -source 1.6-target 1.6 以生成与 1.6兼容的字节码。 这不会处理 Java SE 8 新增的包,类或函数的使用。 它仅处理字节码输出。 如果开发者打算在多个 Java 虚拟机规范级别上运行应用程序,那么他们必须注意从 Java SE 包中使用的 API。

    3. 解决先前编译的 Java SE 应用程序中的任何不兼容问题。

      在大多数情况下,除了 Oracle Compatibility Guide for JDK 8 以及 Java SE 7 和 JDK 7 Compatibility中记录的不兼容和不推荐以外, Java SE 规范与先前的 Java SE 版本是向上二进制兼容的。

      最佳实践: 通过使用 Migration Toolkit for Application Binaries 和 WebSphere Application Server Migration Toolkit来扫描应用程序以查找 API 和规范更改,而不是手动查看应用程序。

      应用程序二进制扫描程序为您的应用程序提供了详细迁移分析报告,以便您可更好地理解应用程序可能需要的更改的类型和范围。 迁移应用程序时,基于 Eclipse 的迁移工具箱提供快速修订以尽可能自动更新您的源代码,并提供有关必须手动更新的项的详细帮助。

      有关更多信息以及要下载工具箱,请参阅 WebSphere Application Server Migration Toolkit