# 使用较新版本的 Java

最佳做法是使用具有最新支持的 Java 版本的 Talend 产品。

## 开始之前

请查看说明，以升级您的产品在 [为所有 Talend 服务升级 Java](https://help.qlik.com/talend/zh-CN/migration-upgrade-guide/8.0/upgrading-java-for-all-talend-services-on-windowson-linux "您可以升级 Java 以避免安全问题。此过程将完成 Java 在 Talend 服务上的次要或主要更新所需的不同步骤。对于轻微的降级也可以遵循该过程。") 中使用的 Java 版本。

## 关于此任务

此过程描述了如何升级您的 Talend 环境以使用 Java 17。

## 步骤

1. 确认您的 Talend Remote Engine 和 Talend JobServer 实例支持要升级到的 Java 版本。

   Talend Remote Engine 和 Talend JobServer 最新版本的启动需要 Java 17，但也可以执行使用其他 Java 版本的作业。

   有关更改用于引擎或 JobServer 启动的 Java 版本的更多信息，请参阅：
   * [更改远程引擎服务的 Java 实例](https://help.qlik.com/talend/en-US/installation-guide-linux/Cloud/java-setup-and-pptimization-for-remote-engine-service#changing-java-instances-for-remote-engine-service)
   * [为 JobServer 配置 JVM](https://help.qlik.com/talend/en-US/installation-guide-linux/8.0/configuring-jvm-for-your-talend-jobserver#specify-the-jvm-version-for-your-talend-jobserver)
2. 配置您 Talend Remote Engine 和 Talend JobServer 实例使用的 JDK 版本，以确保所有现有作业在升级到 Java 17 时继续运行。对于每个实例，设置 JDK 版本以匹配每个构件的 Java 兼容性：
   * 如果您有需要 Java 8 的作业，请为这些作业配置 Java 8。对于已准备好 Java 17 的作业，请配置 Java 17。
   * 如果所有作业都支持 Java 17，请仅配置 Java 17。

   以上是配置 Java 时需要考虑的最常见场景。对于旧版本，您可能需要并行运行多个引擎或 JobServer 实例，每个实例使用不同的 Java 版本。

   然而，最新的 Talend Remote Engine 和 Talend JobServer 版本都支持动态 JVM 选择模式。此模式根据要执行的构件的 Java 兼容级别自动选择正确的 Java 实例。有关配置此 JVM 选择模式的说明，请参阅：
   * [自适应模式：将远程引擎配置为动态选择 Java 版本](https://help.qlik.com/talend/en-US/remote-engine-user-guide-linux/Cloud/configure-java-versions-for-job-execution-or-microservice-execution#configure-dynamic-adaptive-jvm-versions-for-job-execution-or-microservice-execution)。
   * [自适应模式：将 Talend JobServer 配置为动态选择 Java 版本](https://help.qlik.com/talend/en-US/installation-guide-linux/8.0/configuring-jvm-for-your-talend-jobserver#configure-dynamic-adaptive-jvm-versions-for-jobserver-to-run-jobs)

   此配置允许您使用单个引擎或 JobServer 实例使用不同的 Java 版本运行作业。
3. 如果您使用的是路由或数据服务，请注意，使用 Talend Studio R2025-02 或更高版本构建为 OSGi 的构件仅与 8.0.1-R2025-02-RT 或更高版本的 Talend Runtime 兼容。
   * 如果您已经使用 Talend 8.0 将所有路由和数据服务构建为微服务，则它们可以使用 Java 11 或 Java 17 运行。从 R2025-02 r版本构建的路由和数据服务需要 Java 17 才能运行。

   * 如果您使用的是作为 OSGi 构建的路线或数据服务，则必须安装使用 R2025-02 中 Camel 4 的 Talend Runtime。如果 Talend Remote Engine 是架构的一部分，您还必须安装新版本的 Talend Remote Engine。有关更多信息，请参阅[完整 Talend Runtime 安装 的手动迁移](https://help.qlik.com/talend/en-US/installation-guide-linux/Cloud/manual-migration-of-a-full-talend-runtime-installation)和[升级 Talend Remote Engine](https://help.qlik.com/talend/en-US/installation-guide-linux/Cloud/upgrading-remote-engine-intro)。

     您可以继续运行 Camel 3 Talend Runtime，并逐步重建和重新部署您的路由和数据服务至使用 Camel 4 和通过 Java 17 运行的新的 Talend Runtime。这是因为 Talend Runtime 只能处理一个 Camel 版本，而 Camel 4 与 17 以下的 Java 版本不兼容。

     确保测试和更新您在 Routes 和 Data Services 中使用的任何现有自定义代码或外部库，以确保与 Camel 4 的兼容性。
4. 升级 Talend Studio。

   如果您的所有作业都可以使用 Java 17 运行，则可以升级到仅使用 Java 17 构建和运行作业的 Talend Studio 版本。

   如果您的某些作业无法使用 Java 17 运行，您可继续使用支持用 Java 8 构建作业的 Talend Studio 版本，同时在另一个 Talend Studio 实例中逐步使用 Java 17 重建所有作业。

   信息注释重要： 支持 Java 8 的 Talend Studio 版本将在有限的时间内得到维护。如果您使用的是 Java 8，我们建议您尽快迁移到 Java 17，以确保您的环境得到持续支持。
5. 逐步重建构件，使其在 Java 17 上本机运行。

   最佳做法是首先重建路由和数据服务，然后重建频繁修改的作业，最后重建剩余的工件。

   默认情况下，例程继续按照 Java 8 合规性构建。如果需要，您可以将例程升级到 Java 17。请注意，大数据作业不支持在 Java 17 上运行的例程。使用 Java 8 运行例程的灵活性适应了尚未支持较新 Java 版本的大数据技术。