[KB7088] 지원되는 JDK를 사용하여 ESET PROTECT 온프레미스 웹 콘솔용 Apache Tomcat 구성(Windows)

참고:

이 페이지는 컴퓨터로 번역되었습니다. 이 페이지의 언어 아래에서 영어를 클릭하면 원문을 볼 수 있습니다. 불분명한 내용이 있으면 현지 지원팀에 문의하세요.

이슈

세부 정보


클릭하여 확장

ESET PROTECT 온-프레미스 웹 콘솔은 Java 애플리케이션용 웹 서버 및 서블릿 컨테이너인 Apache Tomcat에서 실행됩니다. Apache Tomcat에는 Java 런타임이 포함되어 있지 않으며, Java 개발 키트(JDK)에서 제공하는 Java 런타임에 의존합니다. 이전에는 Oracle JDK 8(Java SE 8)이 Apache Tomcat에 가장 널리 사용되는 버전이었기 때문에 많은 배포가 이 버전에 의존했습니다.

2019년 1월부터 오라클은 Java SE 8에 대한 라이선스를 변경했습니다. 이제 비즈니스, 상업 또는 프로덕션용 공개 업데이트를 사용하려면 유료 구독이 필요합니다.

Oracle JDK 8(Java SE 8)을 사용 중이고 Oracle 구독이 없는 경우, 지원되는 무료 대안(예: Amazon Corretto)으로 전환할 수 있습니다.

이 문서에서는 Windows 설치에 대해 설명합니다. Linux의 경우 SUSE Linux Enterprise Server 또는 Debian용 JDK 설치에 대한 관련 가이드를 참조하세요.


솔루션

ESET PROTECT 온-프레미스 웹 콘솔에 지원되는 JDK 및 Apache Tomcat 버전

ESET PROTECT 온-프레미스 웹 콘솔을 실행하려면 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의 대안(무료 배포):

  • Amazon Corretto 17 또는 21(LTS)

    설치 지침은 Amazon Corretto JDK 설치 섹션을 참조하세요.

  • OpenJDK 기반 배포판(예: Eclipse Temurin 17 또는 21(LTS))

    .msi 설치 관리자를 사용하여 Windows에 OpenJDK 배포를 설치하는 경우 설치 마법사(일반적으로 사용자 지정 설정 아래)에서 JAVA_HOME 환경 변수를 설정하거나 재정의하는 옵션을 선택합니다. 이렇게 하면 Java 설치 경로가 Windows에 등록되어 Apache Tomcat이 JDK를 찾을 수 있습니다.

"데이터를 로드하지 못함" 오류 문제 해결하기

JDK 17 이상을 사용할 때 "데이터를 로드하지 못함" 오류가 발생하는 경우 JDK 17 이상에서 "데이터를 로드하지 못함" 오류 해결 섹션을 참조하여 지침을 확인하세요.


ESET PROTECT 온-프레미스 웹 콘솔에 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. 일반 탭을 클릭하고 시작을 클릭하여 Apache Tomcat 서비스를 시작합니다.

  8. ESET PROTECT 온프레미스 웹 콘솔에 로그인할 수 있는지 확인합니다.


Amazon Corretto JDK 설치

  1. Amazon Corretto 17 또는 Amazon Corretto 21용 Windows .msi 설치 파일을 다운로드합니다.

  2. 설치 파일을 더블 클릭하여 설치를 시작합니다.

  3. 설치 단계를 진행합니다.

    사용자 지정 설치 경로를 설정할 수 있는 옵션이 있습니다. 기본적으로 Amazon Corretto 17은 C:\프로그램 파일\아마존 코레토\에 설치됩니다. 사용자 지정 경로를 설정한 경우 다음 단계를 위해 경로를 메모해 두세요.

  4. 설치가 완료되면 JAVA_HOMEPATH 환경 변수를 설정합니다.

    • JAVA_HOME을 Amazon Corretto 설치 디렉터리로 설정합니다.

      경로 예시

      • Amazon Corretto 17: C:\프로그램 파일\아마존 코레토\jdk17.0.17_10
      • Amazon Corretto 21: C:\프로그램 파일\아마존 코레토\jdk21.0.9_11

      빌드 번호는 다를 수 있습니다

      각 Amazon Corretto 버전 폴더(예: jdk17.0.17_10)에는 새 릴리스에 따라 변경되는 빌드 번호가 포함되어 있습니다. 설치 후 항상 C:\프로그램 파일\아마존 코레토에서 실제 폴더 이름을 확인하세요.

    • PATH에 %JAVA_HOME%\bin을 추가합니다.

  5. 설치를 확인합니다. 명령 프롬프트에서 다음을 실행합니다:

    java -version

    다음과 같은 결과가 표시됩니다(빌드 번호는 다를 수 있음):

    • 아마존 코레토 17:

      openjdk 버전 "17.0.17" 2025-10-21 LTS OpenJDK 런타임 환경 Corretto-17.0.17.10.1(빌드 17.0.17+10-LTS) OpenJDK 64비트 서버 VM Corretto-17.0.17.10.1(빌드 17.0.17+10-LTS, 혼합 모드, 공유)
    • 아마존 코레토 21:

      openjdk 버전 "21.0.9" 2025-10-21 LTS OpenJDK 런타임 환경 Corretto-21.0.9.11.1(빌드 21.0.9+11-LTS) OpenJDK 64비트 서버 VM Corretto-21.0.9.11.1(빌드 21.0.9+11-LTS, 혼합 모드, 공유)

JDK 17 이상에서 "데이터를 로드하지 못했습니다" 오류 수정

이 문제는 최신 JDK 버전(JDK 17 이상)이 설치된 Apache Tomcat에서 ESET PROTECT 온-프레미스 웹 콘솔을 실행할 때 발생합니다. Java 9부터 Java 플랫폼 모듈 시스템은 웹 콘솔에서 사용하는 일부 라이브러리에 필요한 특정 내부 API에 대한 반사적 액세스를 제한합니다.

이 문제를 해결하려면 이러한 모듈에 계속 액세스할 수 있도록 Apache Tomcat의 Java 구성에 특수 --add-opens 옵션을 추가해야 합니다. 이 옵션은 Apache Tomcat 서비스 구성(tomcat9w.exe), catalina.bat 또는 service.bat 파일을 통해 추가할 수 있습니다.

변경할 때마다 Apache Tomcat 서비스 다시 시작하기

.exe 또는 .bat 파일을 변경할 때마다 Apache 서비스를 다시 시작해야 합니다. 서비스를 다시 시작하려면 다음 단계를 따르세요:

  1. Windows 키를 누르고 Service를 입력한 다음 서비스 앱을 엽니다.

  2. 오른쪽 목록에서 Apache Tomcat을 마우스 오른쪽 버튼으로 클릭합니다.

  3. 다시 시작을 클릭합니다.

Apache Tomcat 서비스 구성(tomcat9w.exe)을 통해 --add-opens 옵션을 추가합니다
  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.rmi/sun.rmi.transport=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED -add-opens=java.rmi/java.util.동시=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" 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" set "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. 변경 사항을 저장합니다.