[KB7088] 使用支持的 JDK 为 ESET PROTECT On-Prem Web 控制台配置 Apache Tomcat (Windows)

注意:

本页已由电脑翻译。点击本页面语言下的英文,显示原文。如果你发现有什么不清楚的地方,请联系你当地的支持。

问题

详细信息


单击展开

ESET PROTECT On-Prem Web 控制台在 Apache Tomcat 上运行,Apache Tomcat 是 Java 应用程序的 Web 服务器和 servlet 容器。Apache Tomcat 不包含 Java 运行时;它依赖于 Java 开发工具包 (JDK) 提供的 Java 运行时。从历史上看,Oracle JDK 8(Java SE 8)是 Apache Tomcat 使用最广泛的版本,因此许多部署都依赖于它。

从 2019 年 1 月开始,Oracle 更改了 Java SE 8 的许可。

如果您使用 Oracle JDK 8 (Java SE 8),但没有 Oracle 订阅,可以改用受支持的免费替代方案(如 Amazon Corretto)。

本文涉及 Windows 安装。对于 Linux,请参阅为 SUSE Linux Enterprise ServerDebian 安装 JDK 的相关指南。


解决方案

ESET PROTECT On-Prem Web 控制台支持的 JDK 和 Apache Tomcat 版本

要运行 ESET PROTECT On-Prem Web 控制台,您需要 Java 开发工具包 (JDK) 提供的 Java 运行时和兼容的 Apache Tomcat 版本。

我们建议安装

  • Apache Tomcat 9.x(最新稳定版本)
  • JDK 17 或 21 (LTS)
    有关 JDK 版本的更多信息,请参阅下面的 "支持的 JDK 版本"部分。
兼容性建议
  • 删除早期 JDK 版本:如果安装了多个 JDK 版本,请卸载早期版本,只保留最新支持的 JDK。
  • 匹配位元:确保 JDK、Apache Tomcat 和 ESET PROTECT On-Prem 使用相同的体系结构(建议使用 64 位)。
支持的 JDK 版本
支持的版本

仅支持长期支持 (LTS) JDK 版本。

支持的 JDK 版本 ESET PROTECT On-Prem 版本
17
10.x - 13.x
21
11.x - 13.x

Oracle JDK的替代版本(无成本发行版):

加载数据失败 "错误的故障排除

如果在使用 JDK 17 或更高版本时遇到 "Failed to load data"(无法加载数据)错误,请参阅 "Fix the "Failed to load data" error with JDK 17 or later"(使用 JDK 17 或更高版本修复 "无法加载数据"错误)部分以获得指导。


为 ESET PROTECT On-Prem Web 控制台切换 Apache Tomcat 使用的 JDK 发行版

  1. 导航到 Apache Tomcat 文件夹(例如,C:\Program Files\Apache Software Foundation\Tomcat 9.0)。打开bin文件夹并找到tomcat9w.exe。双击该文件运行。Apache Tomcat 属性将打开。

  2. 单击 "常规"选项卡并单击 "停止"以停止Apache Tomcat 服务。

  3. 卸载当前的 JDK。

  4. 安装新的 JDK。

  5. 返回 "Apache Tomcat 属性",单击 "Java"选项卡。

  6. Java 虚拟机字段中,更新路径以指向新安装的 JDK 的jvm.dll文件(例如,对于 Amazon Corretto,C:\Program Files\Amazon Corretto\jdk21.0.9_10\bin\server\jvm.dll )。

  7. 单击 "常规"(General)选项卡,然后单击 "启动"(Start)以启动 Apache Tomcat 服务。

  8. 验证是否可以登录 ESET PROTECT On-Prem Web 控制台。


安装 Amazon Corretto JDK

  1. 下载Amazon Corretto 17Amazon Corretto 21 的 Windows.msi安装文件。

  2. 双击安装文件开始安装。

  3. 继续执行安装步骤。

    您可以选择设置自定义安装路径。默认情况下,Amazon Corretto 17 安装在C:\Program Files\Amazon Corretto\ 下。如果设置了自定义路径,请记下路径以便下一步操作。

  4. 安装完成后,设置JAVA_HOMEPATH环境变量。

    • JAVA_HOME设置为 Amazon Corretto 的安装目录。

      路径示例:

      • Amazon Corretto 17:C:\Program Files\Amazon Corretto\jdk17.0.17_10
      • Amazon Corretto 21:C:\Program Files\Amazon Corretto\jdk21.0.9_11

      版本号可能会有所不同

      每个 Amazon Corretto 版本文件夹(例如jdk17.0.17_10)都包含一个版本号,该版本号会随新版本的发布而变化。安装后,请务必在C:\Program Files\Amazon Corretto 中验证实际文件夹名称。

    • PATH 中添加%JAVA_HOME%\bin

  5. 验证安装。在命令提示符中运行

    java -version

    你应该会看到以下输出(版本号可能会有所不同):

    • 亚马逊 Corretto 17:

      openjdk version "17.0.17" 2025-10-21 LTS OpenJDK Runtime Environment Corretto-17.0.17.10.1 (build 17.0.17+10-LTS) OpenJDK 64 位服务器虚拟机 Corretto-17.0.17.10.1 (build 17.0.17+10-LTS, mixed mode, sharing)
    • 亚马逊 Corretto 21:

      openjdk 版本 "21.0.9" 2025-10-21 LTS OpenJDK 运行时环境 Corretto-21.0.9.11.1 (build 21.0.9+11-LTS) OpenJDK 64 位服务器虚拟机 Corretto-21.0.9.11.1 (build 21.0.9+11-LTS, 混合模式, 共享)

修复 JDK 17 或更高版本中的 "加载数据失败 "错误

ESET PROTECT On-Prem Web 控制台在使用较新 JDK 版本(JDK 17 或更高版本)的 Apache Tomcat 上运行时会出现此问题。从 Java 9 开始,Java Platform Module System 限制对某些内部 API 的反射访问,而 Web 控制台使用的某些库需要这些 API。

为了解决这个问题,您需要在 Apache Tomcat 的 Java 配置中添加特殊的--add-opens选项,以便这些模块仍可访问。您可以通过Apache Tomcat 服务配置 (tomcat9w.exe)catalina.batservice. bat文件添加这些选项。

每次更改后重启 Apache Tomcat 服务

每次更改.exe.bat文件后,都需要重启 Apache 服务。要重启服务,请按照以下步骤操作:

  1. Windows键,键入服务并打开服务应用程序。

  2. 右键单击右侧列表中的Apache Tomcat

  3. 单击 "重新启动"。

通过 Apache Tomcat 服务配置 (tomcat9w.exe) 添加--添加--打开选项
  1. 导航至 Apache Tomcat 文件夹(例如,C:\Program Files\Apache Software Foundation\Tomcat 9.0)。打开bin文件夹并找到tomcat9w.exe。双击该文件运行。

  2. 单击Java 选项卡并在Java 9 选项字段中添加以下值:

    --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED
    图 1-1

    Java 9 选项字段现在包含以下值:

    --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
  3. 单击 "确定"。
在 catalina.bat 中添加 --add-opens 选项
  1. 导航到 Apache Tomcat 文件夹(例如,C:\Program Files\Apache Software Foundation\Tomcat 9.0)。打开bin文件夹,找到catalina.bat文件。用文本编辑器打开该文件。

  2. 找到远程配置 JAVA 9 特定启动参数部分,并添加以下值:

    set "JDK_JAVA_OPTIONS=%JDK_JAVA_OPTIONS% --add-opens=java.base/java.util=ALL-UNNAMED" set "JDK_JAVA_OPTIONS=%JDK_JAVA_OPTIONS% --add-opens=java.base/java.util.concurrent=ALL-UNNAMED"

    远程配置 JAVA 9 特定启动参数部分现在包含以下值:

    set "JDK_JAVA_OPTIONS=%JDK_JAVA_OPTIONS% --add-opens=java.base/java.lang=ALL-UNNAMED" set "JDK_JAVA_OPTIONS=%JDK_JAVA_OPTIONS% --add-opens=java.base/java.io=ALL-UNNAMED" 设置 "JDK_JAVA_OPTIONS=%JDK_JAVA_OPTIONS%--add-opens=java.base/java.util=ALL-UNNAMED"。设置 "JDK_JAVA_OPTIONS=%JDK_JAVA_OPTIONS% --add-opens=java.base/java.util=ALL-UNNAMED" 设置 "JDK_JAVA_OPTIONS=%JDK_JAVA_OPTIONS% --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED" 保存更改。
  3. 保存更改。

在 service.bat 中添加 --add-opens 选项
  1. 导航至 Apache Tomcat 文件夹(例如,C:\Program Files\Apache Software Foundation\Tomcat 9.0)。打开bin文件夹,找到service.bat文件。用文本编辑器打开该文件。

  2. 导航至 --JvmOptions9行并将其更改为

    --JvmOptions9"--add-opens=java.base/java.lang=ALL-UNNAMED#--add-opens=java.base/java.io=ALL-UNNAMED#--add-opens=java.base/java.util=ALL-UNNAMED#--add-opens=java.base/java.util.concurrent=ALL-UNNAMED#--add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED"^
  3. 保存更改。