运行复制到 Azure 的复制活动时出现 UserErrorJreNotFound 错误消息
本文针对尝试使用基于 Java 的工具或程序将内容复制到 Microsoft Azure 时出现的问题提供了解决方法。
原始产品版本: 数据工厂
原始 KB 数: 4497239
症状
尝试使用基于 Java 的工具或程序 ((例如,) 复制 ORC 或 Parquet 格式化文件)将内容复制到 Microsoft Azure 时,会收到类似于以下内容的错误消息:
ErrorCode=UserErrorJreNotFound,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=Java 运行时环境未找到。 转到
http://go.microsoft.com/fwlink/?LinkId=808605
下载并安装在 Integration Runtime(自承载) 节点计算机上。 注意 64 位Integration Runtime需要 64 位 JRE,32 位Integration Runtime需要 32 位 JRE.,Source=Microsoft.DataTransfer.Common,'Type=System.DllNotFoundException,Message=无法加载 DLL'jvm.dll':找不到指定的模块。 (来自 HRESULT 的异常:0x8007007E) ,Source=Microsoft.DataTransfer.Richfile.HiveOrcBridge
原因
出现此问题的原因有以下任一:
Integration Runtime 服务器上未正确安装 Java 运行时环境 (JRE) 。
Integration Runtime服务器缺少 JRE 所需的依赖项。
默认情况下,Integration Runtime使用注册表项解析 JRE 路径。 应在 JRE 安装过程中自动设置这些条目。
解决方案
请仔细遵循本部分中的步骤进行操作。 对注册表修改不当可能会导致严重问题。 修改之前,备份注册表以便在发生问题时进行还原。
若要解决此问题,请按照以下步骤验证 JRE 安装的状态:
请确保在同一平台上安装了 Integration Runtime (Diahost.exe) 和 JRE。 检查以下条件:
64 位 ADF Integration Runtime的 64 位 JRE 应安装在 文件夹中:
C:\Program Files\Java\
注意
文件夹不是
C:\Program Files (x86)\Java\
JRE 7 和 JRE 8 都与此复制活动兼容。 JRE 6 和早于 JRE 6 的版本尚未验证此用途。
检查注册表中的相应设置。 为此,请按照下列步骤操作:
在 “运行 ”菜单中,键入 “Regedit”,然后按 Enter。
在导航窗格中,找到以下子项:
HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment
。在“ 详细信息 ”窗格中,应有一个显示 JRE 版本 (例如 1.8) 的当前版本条目。
在导航窗格中,找到与版本 (完全匹配的子项,例如 JRE 文件夹下的 1.8) 。 在详细信息窗格中,应有 一个 JavaHome 条目。 此项的值是 JRE 安装路径。
在以下路径中找到 bin\server 文件夹:
C:\Program Files\Java\jre1.8.0_74
检查此文件夹是否包含 jvm.dll 文件。 否则,检查 文件夹中的文件
bin\client
。
注意
- 如果这些配置中的任何一个未如这些步骤中所述,请使用 JRE Windows 安装程序 来修复问题。
- 如果这些步骤中的所有配置都如所述正确,则系统中可能缺少 VC++ 运行时库。 可以通过安装 VC++ 2010 可再发行程序包来解决此问题。
联系我们寻求帮助
如果你有任何疑问或需要帮助,请创建支持请求或联系 Azure 社区支持。 还可以向 Azure 反馈社区提交产品反馈。
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈