일부 사용자는 Java 기반 애플리케이션을 실행하려고 할 때 "Could Not Create The Java Virtual Machine"(Java 가상 머신을 생성할 수 없음) 오류 메시지가 나타난다고 보고하고 있습니다. 이 문제는 마인크래프트(Minecraft)를 비롯해 Java로 개발된 여러 프로그램에서 자주 발생하는 것으로 알려져 있습니다.

오류의 원인은 무엇인가요?
다양한 사용자 사례와 실제 문제 해결 과정을 분석한 결과, 이 오류를 유발하는 대표적인 원인은 다음과 같습니다.
- 잘못된 인자나 옵션으로 Java가 실행되는 경우 – 직접 제작한 애플리케이션을 실행하거나, 시스템 불안정을 일으킬 수 있는 오픈소스 프로그램을 열 때 발생할 수 있습니다.
- Java의 전역 최대 힙(Heap) 메모리가 부족한 경우 – 가장 흔한 원인입니다. 실행하려는 Java 애플리케이션이 요구하는 최대 힙 메모리 크기가 시스템 변수(System Variable)에 설정된 값보다 클 때 이 오류가 나타납니다.
- Java 실행 파일 또는 애플리케이션에 관리자 권한이 필요한 경우 – 정상적으로 작동하기 위해 관리자 권한이 필요한 프로그램에서 발생할 수 있습니다.
이 글에서는 "Could Not Create The Java Virtual Machine" 오류를 해결하기 위한 검증된 방법들을 순서대로 안내해 드립니다. 아래 방법들을 하나씩 적용해 보면서 본인의 상황에 맞는 해결책을 찾아보시기 바랍니다. 가장 좋은 결과를 얻으려면 소개된 순서대로 진행하는 것을 권장합니다.
방법 1: 시스템 변수에 _JAVA_OPTIONS 추가하기
많은 사용자가 시스템 변수에 _JAVA_OPTIONS라는 이름의 변수를 새로 만들고 값을 Xmx512M으로 설정하여 이 문제를 해결했습니다. 이 설정은 Java의 전역 최대 힙 메모리 크기를 지정하는 역할을 합니다.
실행 중인 Java 애플리케이션의 최대 힙 메모리가 시스템 변수에 설정된 값보다 커서 발생하는 오류를 해결할 수 있으며, 실제로 동일한 문제를 겪던 여러 사용자가 아래 단계를 따른 후 문제가 완전히 해결되었다고 보고했습니다.
- Windows 키 + R을 눌러 실행(Run) 대화상자를 엽니다. 그런 다음 "sysdm.cpl"을 입력하고 Enter 키를 눌러 시스템 속성 창을 엽니다.
- 시스템 속성 창에서 고급 탭으로 이동한 뒤 환경 변수 버튼을 클릭합니다.
- 환경 변수 창에서 시스템 변수 영역 아래의 새로 만들기를 클릭합니다.
- 새 시스템 변수 창에서 변수 이름은 _JAVA_OPTIONS, 변수 값은 -Xmx512M으로 입력한 후 확인을 눌러 저장합니다.
- 열려 있는 모든 창을 닫고 변경 사항을 적용하기 위해 컴퓨터를 재시작합니다.
- 재부팅 후 이전에 오류가 발생했던 애플리케이션을 다시 실행하여 정상적으로 작동하는지 확인합니다.

여전히 동일한 오류가 발생한다면, 위 방법에서처럼 환경 변수에 Java Bin 경로(예: "%\USER PATH\Java\jdk1.6.0_39\bin")를 추가한 후 다시 시도해 보세요.
방법 2: java.exe를 관리자 권한으로 실행하기
동일한 문제를 겪던 일부 사용자는 Java의 기본 실행 파일(java.exe)을 항상 관리자 권한으로 실행하도록 설정한 후 문제를 해결했습니다.
특히 오류를 일으키는 애플리케이션의 실행 파일에도 동일하게 적용했을 때 문제가 해결되었다는 사례도 있습니다. 절차는 다음과 같습니다.
- 파일 탐색기를 열어 Java가 설치된 위치로 이동합니다. 기본 실행 파일(java.exe)을 찾아야 하며, 기본 설치 경로는 Program Files/Java/*JRE 빌드 버전*/bin입니다. 사용 중인 JRE 버전에 따라 정확한 경로는 달라질 수 있습니다.

참고: Java를 사용자 지정 위치에 설치했다면 해당 경로로 이동하세요.
- java.exe 파일을 마우스 오른쪽 버튼으로 클릭하고 속성을 선택합니다. 호환성 탭으로 이동한 뒤 설정 영역의 관리자 권한으로 이 프로그램 실행에 체크하고 적용을 클릭합니다.

- 오류가 발생하는 애플리케이션의 실행 파일에도 동일한 절차를 반복합니다. 즉, 속성 > 호환성 > 관리자 권한으로 이 프로그램 실행 > 적용 순서로 진행합니다.
- 애플리케이션을 다시 실행하여 오류가 사라졌는지 확인합니다.
방법 3: Java 재설치하기
경우에 따라 Java가 올바르게 설치되지 않았거나, 시간이 지나면서 설치 파일이 손상되어 오류가 발생할 수 있습니다. 이 경우 Java를 완전히 제거한 후 다시 설치하면 문제가 해결될 수 있습니다.
- Windows 키 + R을 눌러 실행 창을 연 뒤 "Appwiz.cpl"을 입력합니다.

- Enter 키를 누르면 프로그램 및 기능 화면이 열립니다.
- 설치된 프로그램 목록에서 Java를 찾을 때까지 스크롤합니다.

- Java를 마우스 오른쪽 버튼으로 클릭하고 제거를 선택하여 시스템에서 완전히 삭제합니다.
- 먼저 기본 Java 설치본을 제거한 뒤, 업데이트나 다른 버전 등 남아 있는 모든 Java 관련 항목도 함께 제거합니다.
- 모든 설치 항목을 제거한 후 컴퓨터를 재시작합니다.
- 재부팅이 완료되면 오라클 공식 웹사이트에 접속하여 최신 버전의 JRE를 다운로드해 설치합니다.
- 문제가 계속되는지 확인합니다.
- 그래도 오류가 지속된다면 최신 버전의 JDK를 다운로드하여 설치해 보세요.
참고: 이미 JDK를 사용 중이라면 버전을 변경하거나, JDK와 함께 설치된 JRE를 제거해 보는 것도 좋습니다. - 문제가 해결되었는지 다시 한번 확인합니다.
방법 4: 코드 오류 수정하기
이 오류는 코드 자체의 문제로 인해 발생하기도 합니다. 아래에서 대표적인 사례들을 살펴보세요.
- 하이픈(-) 수정: 일부 사용자는 코드의 이중 하이픈 "--"를 단일 하이픈 "-"로 변경한 후 오류가 해결되었다고 보고했습니다. 예를 들어:
다음 코드를
"sony@sony-VPCEH25EN:~$ java --version
Picked up JAVA_TOOL_OPTIONS: -javaagent:/usr/share/java/jayatanaag.jar
Unrecognized option: --version
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit."
아래와 같이 변경합니다.
"sony@sony-VPCEH25EN:~$ java -version
Picked up JAVA_TOOL_OPTIONS: -javaagent:/usr/share/java/jayatanaag.jar
Unrecognized option: --version
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit." - 또한 인자(argument)에서 다음 줄을 제거해 보세요.
-Djava.endorsed.dirs="C:\Program Files\Apache Software Foundation\Tomcat 8.5\endorsed" - eclipse.ini 파일을 열어 "-vm" 항목이 vm args보다 위에 있는지 확인하세요. 그렇지 않으면 환경 변수에서 JVM V6가 선택될 수 있습니다.
- Ubuntu 사용자라면 Java 8만 공식적으로 지원된다는 점을 알아두세요. 따라서 위의 방법 3을 활용해 Java를 제거한 후 이전 버전을 설치해야 합니다.
방법 5: Eclipse.ini 파일 편집하기
Eclipse.ini 파일 내부의 설정을 조정하여 이 문제를 해결할 수도 있습니다. 설정상 몇 가지 문제점이 있을 수 있으므로, 상황별로 나누어 안내해 드립니다. 본인에게 맞는 항목을 골라 적용해 보세요.
메모리 사용량 낮추기
- Eclipse 폴더 안의 Eclipse.ini 파일을 메모장으로 엽니다.
- "-Xmx256m"과 유사한 줄을 찾습니다(-Xmx1024m 또는 -Xmx512m일 수도 있습니다).
- 컴퓨터에 장착된 RAM 용량에 맞게 기본값을 더 합리적인 수치로 변경하고, Java 버전 번호도 함께 추가합니다. 예를 들어:
-Xmx512m -Dosgi.requiredJavaVersion=1.6 OR -Xmx512m -Dosgi.requiredJavaVersion=1.7 OR -Xmx512m -Dosgi.requiredJavaVersion=1.8
- "-launcher.XXMaxPermSize" 줄에서 "256m" 값을 제거해 보세요.
- 문제가 해결되었는지 확인합니다.
세부 설정 조정하기
- 파일에서 다음 줄을 제거해 보세요.
-vm P:\Programs\jdk1.6\bin
- 다음 줄도 변경해 보세요.
set -Dosgi.requiredJavaVersion=1.5 TO set -Dosgi.requiredJavaVersion=1.6
- "-vmargs!" 줄 바로 위에 다음 줄을 추가해 보세요.
-vm C:\Program Files (x86)\Java\jre6\bin\javaw.exe
- JVM.dll을 직접 지정해 보세요.
-vm C:\Program Files\Java\jre7\bin\client\jvm.dll
- Eclipse 파일을 열어 "-vmargs"를 javaw.exe 경로로 교체합니다. 예를 들어:
-startup plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar --launcher.library plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.200.v20120522-1813 -product com.android.ide.eclipse.adt.package.product --launcher.XXMaxPermSize 256M -showsplash com.android.ide.eclipse.adt.package.product --launcher.XXMaxPermSize 256m --launcher.defaultAction openFile **-vm “c:\Program Files\Java\jdk1.7.0_07\bin\javaw.exe”** -Dosgi.requiredJavaVersion=1.6 -Xms40m -Xmx768m -Declipse.buildId=v21.1.0-569685
- 파일 끝에 다음 줄을 추가하고 효과가 있는지 확인할 수도 있습니다.
-vmargs -Xms40m -Xmx512m -XX:MaxPermSize=256m
- 그래도 문제가 지속되면 eclipse.ini에서 다음 두 줄을 제거해 보세요.
-XX:+UseStringDeduplication -XX:+UseG1GC
- 마지막 수단으로 eclipse.ini 파일 자체를 삭제해 보는 방법도 있습니다. 일부 사용자에게 효과가 있었다고 알려져 있지만, 혹시 모르니 반드시 백업을 먼저 해두세요. 또한 Java 실행 전에 리소스를 많이 사용하는 프로그램을 모두 종료하여 충분한 시스템 자원을 확보하는 것도 도움이 됩니다.
JDK 손상 여부 확인하기
- Windows + R 키를 눌러 실행 창을 연 뒤 "cmd"를 입력합니다.
- 다음 명령어를 입력하고 오류가 발생하는지 확인합니다.
c:\> java -version
- 오류가 발생한다면 JDK를 완전히 재설치하세요.