您希望从 Oracle Java SE 迁移到 OpenJDK 发行版。而您的应用程序工程团队无法识别生产环境中的所有 Java 发行版和版本。如果您不考虑不知名的基于 Java 的应用程序,您的组织将受制于 Oracle 的按员工定价,这种定价可能非常昂贵。
在开始将 Java 从 Oracle 迁移到 OpenJDK 提供商之前,您必须进行一些基本的发现。发现包括确定组织内哪些应用程序和哪些机器(包括云实例)正在使用哪些版本的 Java。您将使用 Java 清单来创建迁移计划。
编制当前使用的 JDK 的 Java 清单
要创建完整的 Java 开发工具包 (JDK) 使用清单,请检查您的资产中运行任何基于 Java 虚拟机的应用程序的每台机器。如果您使用 IT 资产管理 (ITAM) 工具来监控软件使用情况,这就很简单。如果您不使用 ITAM 软件,则需要对机器进行手动盘点。也可以使用工具来帮助解决这个问题。
选择要包含哪些 JDK 时,确定哪些 JDK 仍有用途,哪些 JDK 与您仍在运行的任何程序不匹配。
由于使用的 JDK 版本多种多样,因此构建 Java 发行版和版本的清单通常是 JDK 迁移中最耗时的部分。通常,当部署新应用程序时,会使用最新版本的 JDK。
确定要使用的 Java 信息
对于清单中的每个条目,至少填写以下字段。
- 类型:物理桌面、物理服务器、云实例和/或容器。
- 访问详情:通过网络连接访问物理机或云实例所需的凭据,这些凭据具有允许安装 JDK 的足够权限。对于容器来说,这些详细信息与容器映像的生成方式有关。这可能通过持续集成/持续交付 (CI/CD) 工具实现,并且应包含使您能够配置不同 JDK 以将其包含在映像中的信息。
- 操作系统 (OS):使用的是哪个操作系统,以及该操作系统的其他详细信息,如版本、版本号、构建号,以及是 32 位还是 64 位。操作系统通常是 Windows、macOS 或 Linux。对于 Linux,您还应该注意发行版 (distro),因为它可能会导致安装格式的不同。
- 自动或手动安装:是否使用安装程序进行安装。如果 JDK 不使用安装程序,该字段还应注明应手动解压 JDK 的
位置。 - JDK 版本:该字段还应包括已安装的更新级别,如 JDK 8u202。
旧版本的 Java 并不少见。在 Azul 的 2024 年 Oracle 使用、定价和迁移情况调查与报告中,26% 的参与者使用 JDK 8,19% 使用 JDK 6 或 7。
来源:Oracle 使用、定价和迁移情况调查与报告,Azul 2024
除了这些基本字段之外,您的 Java 清单还应记录一些边缘情况,这些情况可能会使原本简单的过程变得复杂。包括较旧的 Java 版本(Java 8 之前)、JavaFX、Java Web Start 和 IcedTea-Web。您可以在 OpenJDK 迁移入门指南 发现其他一些可能性较小的注意事项。
在此过程结束时,您应该会得到 Oracle JDK 所在所有位置的完整列表。如果您需要其他字段,请从我们网站的 OpenJDK 迁移中心 下载清单工作表模板。如果您的 Java 部署规模较大,您可能需要额外的资源来协助盘点。
Java 清单如何适应 Java 迁移的其余部分
在 Azul 将 Oracle Java 迁移到 OpenJDK 发行版的成熟方法中,发现只是三个关键步骤中的第一步。这三个步骤是:
- 发现。确定组织内哪些应用程序和哪些机器(包括云实例)正在使用哪些版本的 Java。您将使用此清单来创建迁移计划。
- 执行。对于每台需要 Java 运行时的机器,安装您选择的相同版本(或多个版本)的 OpenJDK 发行版。
- 验证。测试您的应用程序,验证一切是否正常。
在 Azul 首席技术官兼 Java Champion Simon Ritter 撰写的 OpenJDK 迁移入门指南 中,了解有关从 Oracle Java 迁移到 OpenJDK 发行版的更多信息。