일부 사용자들이 특정 응용 프로그램 실행 파일을 열려고 할 때 "레지스트리가 존재하지 않는 Java Runtime Environment를 참조합니다(registry refers to a nonexistent Java Runtime Environment)" 오류가 발생한다고 보고하고 있습니다. 대부분의 피해 사용자는 이 문제가 갑자기 나타났다고 말하며, 이전에는 동일한 실행 파일을 아무 문제 없이 실행할 수 있었습니다.

오류의 원인
다양한 사용자 사례를 분석하고 문제를 직접 재현해 본 결과, 이 오류 메시지는 레지스트리 편집기에 이전 Java 설치의 잔여 항목이 남아 있다는 신호입니다.
조사 결과, 이 문제가 발생하는 대표적인 시나리오는 다음과 같습니다.
- 레지스트리에 실제 Java 경로로 연결되지 않는 항목이 있는 경우 – 주로 초기 설치 후 소프트웨어를 수동으로 다른 디렉터리로 이동했을 때 발생합니다. 유효하지 않은 레지스트리 항목을 수동으로 제거하면 해결할 수 있습니다.
- 불완전하거나 손상된 Java 설치 – Java를 제거한 후 JDK를 다시 설치하여 문제를 해결한 사용자도 많습니다. 손상된 파일이나 일시적인 오류가 원인일 가능성이 있습니다.
이 문제로 고민 중이라면, 아래에서 검증된 문제 해결 단계를 순서대로 따라 해 보세요. 비슷한 상황의 다른 사용자들이 성공적으로 활용한 방법들입니다. 자신의 상황에 맞는 해결책을 찾을 때까지 순서대로 진행하는 것이 좋습니다.
방법 1: JavaHome 및 RuntimeLib의 유효하지 않은 레지스트리 항목 삭제
같은 문제를 겪던 여러 사용자가 실제 경로를 참조하지 않는 JavaHome 및 RuntimeLib 레지스트리 항목을 삭제하여 문제를 해결했습니다.
모든 JavaHome 변수는 \bin\client\jvm.dll과 유사한 경로를 참조해야 하며, 각 RuntimeLib은 실제로 존재하는 jvm.dll 파일을 가리켜야 합니다. 그러나 이 오류가 발생한 경우 해당 경로나 파일이 존재하지 않는 변수가 하나 이상 있을 수 있습니다.
이는 설치 후 소프트웨어를 다른 디렉터리로 옮긴 경우 흔히 발생합니다. 유효하지 않은 레지스트리 변수를 발견하면 수동으로 제거해야 합니다.
이 작업은 약간의 수동 작업과 기본적인 기술 지식이 필요하지만, 전체 Java Runtime Environment를 다시 설치하지 않고도 문제를 해결할 수 있습니다. 아래 단계별 가이드를 따라 진행하세요.
- Windows 키 + R을 눌러 실행(Run) 대화 상자를 엽니다. "regedit"를 입력하고 Enter 키를 눌러 레지스트리 편집기를 실행합니다. UAC(사용자 계정 컨트롤) 창이 나타나면 예를 클릭합니다.

- 레지스트리 편집기에서 왼쪽 창을 이용해 다음 위치로 이동합니다.
컴퓨터 \ HKEY_LOCAL_MACHINE \ SOFTWARE \ JavaSoft \ Java Runtime Environment
- Java Runtime Environment 폴더 아래의 첫 번째 Java 버전을 선택하고 오른쪽 창으로 이동합니다.
- 오른쪽 창에서 JavaHome을 두 번 클릭하고 값 데이터(Value data) 경로 전체를 클립보드에 복사합니다.

- 파일 탐색기를 열고 복사한 경로를 주소 표시줄에 붙여넣습니다. 실제 폴더로 이동되면 해당 레지스트리 값은 정상입니다. 아무것도 열리지 않는다면 존재하지 않는 Java 설치를 참조하는 것이므로 삭제해야 합니다.

참고: 값 데이터 경로가 유효하지 않다면 JavaHome을 마우스 오른쪽 버튼으로 클릭하고 삭제를 선택하여 항목을 제거합니다.

- JavaHome 확인이 끝나면 RuntimeLib을 두 번 클릭하고 값 데이터 경로를 클립보드에 복사합니다.

- 앞서와 같이 파일 탐색기 주소 표시줄에 복사한 경로를 붙여넣습니다. 단, 이번에는 Enter 키를 누르기 전에 마지막의 "jvm.dll" 부분을 제거합니다.

참고: 해당 경로가 존재하면 RuntimeLib 레지스트리 값은 정상입니다. 반대로 Windows가 경로를 찾을 수 없다는 메시지를 표시하면 존재하지 않는 Java 설치를 참조하는 것이므로 제거해야 합니다. 이 경우 RuntimeLib을 마우스 오른쪽 버튼으로 클릭하고 삭제를 선택합니다.

- 첫 번째 Java 버전을 처리했다면, Java Runtime Environment 아래에 남아 있는 나머지 모든 Java 버전에 대해 4~7단계를 반복합니다.

- 모든 레지스트리 항목을 확인하고 정리한 후 레지스트리 편집기를 닫고 컴퓨터를 다시 시작하여 오류가 해결되었는지 확인합니다.
이 방법으로 해결되지 않았거나 더 간단한 방법을 원한다면 아래의 다음 방법으로 넘어가세요.
방법 2: Java 제거 후 Java JDK 재설치
Minecraft처럼 JDK에 의존하는 응용 프로그램 실행 시 이 문제가 발생한다면, 전체 Java 환경을 제거한 후 JDK(Java Development Kit)를 새로 설치하여 해결할 수 있습니다.
절차는 다음과 같습니다.
- Windows 키 + R을 눌러 실행(Run) 대화 상자를 엽니다. "appwiz.cpl"을 입력하고 Enter 키를 눌러 프로그램 및 기능을 엽니다.

- 프로그램 및 기능에서 게시자(Publisher) 열을 클릭한 후 Oracle Corporation에서 배포한 항목을 찾아 아래로 스크롤합니다.
- 각 Java 설치(또는 업데이트) 항목을 마우스 오른쪽 버튼으로 클릭하고 제거를 선택합니다. 화면의 지시에 따라 모든 항목의 제거를 완료합니다.

- Java 환경을 완전히 제거한 후 컴퓨터를 다시 시작합니다.
- 재부팅 후 Oracle 공식 다운로드 페이지에 접속하여 다운로드 버튼을 클릭합니다.

- 다음 화면에서 Java SE Development Kit 항목으로 스크롤한 뒤 라이선스 동의(Accept License Agreement) 토글을 클릭합니다. 그다음 Windows용 실행 파일 다운로드 링크를 클릭합니다.

- JDK 설치 프로그램을 실행하고 화면의 지시에 따라 설치를 진행합니다. 완료 후 자동으로 재시작되지 않으면 컴퓨터를 직접 다시 시작합니다.
- 재부팅 후에는 "레지스트리가 존재하지 않는 Java Runtime Environment를 참조합니다" 오류 없이 응용 프로그램을 정상적으로 실행할 수 있을 것입니다.