# 兼容的 Java 环境

下表提供了有关从 February 2025 及更高版本起建议与您的 Talend 产品一起使用的 Java 环境的信息。如果您使用的 Talend 8.0 产品未使用 February 2025 或更高版本的更新进行修补或更新，请参阅 [February 2025 之前的兼容 Java 环境](https://help.qlik.com/talend/en-US/supported-java-versions-before-february-2025/8.0)。

支持的 Java 平台是 OpenJDK 和 Oracle JDK。OpenJDK 的建议发行版是 [Zulu](https://www.azul.com/downloads/zulu/) （仅提供英文版本）。

信息注释重要： 所有 Talend 产品及相关的第三方应用程序，例如 Hadoop 集群，都应使用兼容的 Java 版本。对于大数据作业，请注意该作业在 Talend Studio 中构建时遵循 Java 8 规范，但在目标集群上运行时采用目标集群运行的 Java 版本。在您安装或升级任何相关的第三方应用程序之前，Qlik 建议您检查它们支持的 Java 版本，并确保您的例程合规性级别兼容。

信息注释提示： 有关升级模块和工件以使用最新支持的 Java 版本的更多信息，请参阅[使用最新版本的 Java](https://help.qlik.com/talend/en-US/migration-upgrade-guide/8.0/migrating-artifacts-to-use-java-17)。

在下面的文档中：

* 建议：指定由 Qlik 根据我们的经验和客户使用情况建议的环境。
* 支持：指定支持用于所列组件或服务的环境。
* 带限制的支持：指定受 Qlik 支持但具有说明中交待的某些条件的环境。

## 用于启动 Talend Studio 的支持的 Java 版本

| Java 版本 (OpenJDK 或 Oracle JDK) | 支持类型 |
| --- | --- |
| 21 | 建议 |
| 17 | 支持 |

## 用于启动 Talend Server 模块的支持的 Java 版本

| Talend 服务器模块 | Java 版本 (OpenJDK 或 Oracle JDK) | 支持类型 |
| --- | --- | --- |
| <ul> <li> <span>Talend Administration Center</span> <sup>1</sup> </li> <li> <span>Talend JobServer</span> </li> <li> <span>Talend Identity and Access Management</span> </li> <div><div><button></button><div><ul>可用产品:<li>适用产品：</li><li>Big Data Platform</li><li>Data Fabric</li><li>Data Management Platform</li><li>Data Services Platform</li><li>Qlik Cloud Enterprise Edition</li><li>Qlik Talend Cloud Enterprise Edition</li><li>Qlik Talend Cloud Premium Edition</li><li>Real-Time Big Data Platform</li></ul></div></div></div><li><span>Talend Dictionary Service</span> </li> <li> <span>Talend SAP RFC Server</span> </li> <li> <span>Talend Data Preparation</span> </li> <li> <span>Talend Data Stewardship</span> </li> </ul> | <ul> <li>17</li> </ul> | 支持 |
| <ul> <div><div><button></button><div><ul>可用产品:<li>适用产品：</li><li>Data Fabric</li><li>Data Services Platform</li><li>ESB</li><li>Qlik Cloud Enterprise Edition</li><li>Qlik Talend Cloud Enterprise Edition</li><li>Qlik Talend Cloud Premium Edition</li><li>Real-Time Big Data Platform</li></ul></div></div></div><li> <span>Talend ESB</span>（应用集成）/ <span>Talend Runtime</span> </li> </ul> | <ul> <li>21</li> <li>17</li> </ul> | 支持<br><br>建议 |
| <ul> <div><div><button></button><div><ul>可用产品:<li>适用产品：</li><li>Data Fabric</li><li>Data Services Platform</li><li>ESB</li><li>Qlik Cloud Enterprise Edition</li><li>Qlik Talend Cloud Enterprise Edition</li><li>Qlik Talend Cloud Premium Edition</li><li>Real-Time Big Data Platform</li></ul></div></div></div><li> <span>Talend ESB</span>（应用集成）/ 微服务</li> </ul> | <ul> <li>21</li> <li>17</li> </ul> | 支持<br><br>建议 |
| <ul> <li> <span>Talend LogServer</span> </li> </ul> | <ul> <li>11</li> <li>8</li> </ul> | 支持 |

^1^ 要在 Java 17 下使用 Talend Administration Center，您需要打开 &lt;tac\_installation\_folder&gt;/apache-tomcat/bin/setenv.sh 文件并添加以下命令：

```
# export modules
export JAVA_OPTS="$JAVA_OPTS --add-opens=java.base/sun.security.x509=ALL-UNNAMED  --add-opens=java.base/sun.security.pkcs=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/sun.security.action=ALL-UNNAMED -Dorg.talend.remote.jobserver.client.old=false"
```

```
JDK_JAVA_OPTIONS="$JDK_JAVA_OPTIONS --add-opens=java.xml/com.sun.org.apache.xml.internal.serialize=ALL-UNNAMED"
```

* 可用产品:
* 适用产品：
* Big Data
* Big Data Platform
* Data Fabric
* Qlik Cloud Enterprise Edition
* Qlik Talend Cloud Enterprise Edition
* Qlik Talend Cloud Premium Edition
* Real-Time Big Data Platform

信息注释注： 推荐用于大数据分配的 Java 环境是 OpenJDK 8 和 Oracle JDK 8。

## 支持运行路由、数据集成作业和数据服务作业的 Java 版本

所有工件都至少需要 Java 17 才能在 Talend Studio 中构建和执行：

* 数据集成作业和路由是基于 Java 17 合规性构建的。
* 大数据作业是基于 Java 8 合规性构建的，并自动包含 add-opens 参数。因此，它们可以在 Talend 模块中用 Java 17 执行，在大数据集群中用 Java 8 执行。换句话说，作业是用 Java 17 启动的，然后部署在以 Java 8 运行的集群中。
* 不支持使用 Java 21 的第三方库。

“编译器合规性级别”对应于用于作业代码生成的 Java 版本。有关更多信息，请参阅[在 Talend Studio 中为例程设置 Java 版本](https://help.qlik.com/talend/r/en-US/8.0/studio-user-guide/setting-compiler-compliance-level)。

下表显示了可以在哪些 Java 环境中执行相应的项。

支持执行数据集成作业的 Java 版本支持执行数据集成作业的 Java 版本

| 执行使用的 Java 版本 | 支持类型 |
| --- | --- |
| 21 | 在 Talend Studio 中支持 |
| 17 | 支持<br><br>请注意，例程合规性可以设置为 Java 8 或 17。 |

* 可用产品:
* 适用产品：
* Data Fabric
* Data Services Platform
* ESB
* Qlik Cloud Enterprise Edition
* Qlik Talend Cloud Enterprise Edition
* Qlik Talend Cloud Premium Edition
* Real-Time Big Data Platform

支持执行路由和数据服务作业的 Java 版本支持执行路由和数据服务作业的 Java 版本

| 执行使用的 Java 版本 | 支持类型 |
| --- | --- |
| 21 | 在 Talend Studio 中支持 |
| 17 | 支持 |

## 在大数据集群中运行大数据作业所支持的 Java 版本

大数据作业在 Talend Studio 中按 Java 8 标准构建。构件包含 add-opens 参数，以确保在 Talend 环境中与 Java 17 运行时兼容。然而，部署到大数据集群时，该作业使用该集群上运行的 Java 版本执行，而非构建时的 Java 版本。

这种构建一次、随处运行的模型，允许您使用符合 Java 8 规范的 Talend Studio 编译一次作业，并将其部署到运行不同 Java 版本的集群中。然而，您必须确保目标集群的 Java 版本与您的作业例程兼容。

例程合规性可以设置为 Java 8 或 17。例程的合规性级别必须与集群的 Java 版本兼容。有关更多信息，请参阅[在 Talend Studio 中为例程设置 Java 版本](https://help.qlik.com/talend/r/en-US/8.0/studio-user-guide/setting-compiler-compliance-level)。

下表列出了运行大数据作业和 Spark 应用程序的推荐发行版及其支持的 Java 版本。选择与您的环境和例程合规级别相匹配的集群发行版和 Java 版本。

* 可用产品:
* 适用产品：
* Big Data
* Big Data Platform
* Data Fabric
* Qlik Cloud Enterprise Edition
* Qlik Talend Cloud Enterprise Edition
* Qlik Talend Cloud Premium Edition
* Real-Time Big Data Platform

用于作业执行的大数据发行版及支持的 Java 版本用于作业执行的大数据发行版及支持的 Java 版本

| 发行版 | 集群中的 Java 版本 | 建议的例程合规性 | 支持状态 |
| --- | --- | --- | --- |
| Hadoop 3.x | 8 | Java 8 | 支持 |
| Hadoop 3.x | 11 | Java 8 或 11 | 支持 |
| Cloudera CDH 6.x | 8 | Java 8 | 支持 |
| Cloudera CDH 6.x | 11 | Java 8 或 11 | 支持 |
| Spark 3.x（独立集群） | 8 或 11 | Java 8 或 11 | 支持 |
| Spark Structured Streaming | 17 | Java 17 | 支持<br><br>请注意，Spark Structured Streaming 需要集群中安装 Java 17。在将您的例行程序部署到这些环境之前，请确保它们已按 Java 17 合规性要求进行编译。 |

## 大数据作业执行兼容性示例

下表展示了大数据作业部署到不同集群环境的示例场景。

* 可用产品:
* 适用产品：
* Big Data
* Big Data Platform
* Data Fabric
* Qlik Cloud Enterprise Edition
* Qlik Talend Cloud Enterprise Edition
* Qlik Talend Cloud Premium Edition
* Real-Time Big Data Platform

大数据作业执行兼容性场景大数据作业执行兼容性场景

| 集群发行版 | 集群 Java 版本 | 例程合规性 | 可以执行？ |
| --- | --- | --- | --- |
| Hadoop 3.x | 8 | Java 8 | 是 |
| Hadoop 3.x | 11 | Java 8 | 是 |
| Cloudera CDH 6.x | 11 | Java 17 | 否 – 集群不支持 Java 17。 |
| Spark Structured Streaming | 17 | Java 17 | 是 |
| Spark Structured Streaming | 17 | Java 8 | 否 – 与集群 Java 17 不兼容的例程 |

信息注释重要： 请始终确认目标集群的 Java 版本支持您作业的例程合规性级别。部署前请使用上方的兼容性对照表确认支持情况。