프로그램을 실행할 때마다 다음과 같은 예외가 반복적으로 발생합니다.
VM 초기화 중 오류가 발생했습니다
개체 힙을위한 충분한 공간을 예약 할 수 없습니다
자바 가상 머신을 만들 수 없습니다.
가상 메모리 (페이지 크기)와 RAM 크기를 늘리려 고했지만 아무 소용이 없습니다.
이 오류를 어떻게 제거 할 수 있습니까?
답변
JVM을 -XX:MaxHeapSize=512m
(또는 필요한만큼 큰 숫자로) 또는 -Xmx512m
짧게 실행하십시오.
답변
이는 32 비트 HotSpot VM에서 너무 큰 것을 설정하여 발생할 수도 있습니다. 예를 들면 다음과 같습니다.
-Xms1536m -Xmx1536m
이것이 작동 할 수 있는 곳 :
-Xms1336m -Xmx1336m
답변
해결 방법은 다음과 같습니다.
-
시작-> 제어판-> 시스템-> 고급 (탭)-> 환경 변수-> 시스템으로 이동하십시오.
변수-> 신규 : 변수 이름 :
_JAVA_OPTIONS
변수 값 :-Xmx512M
변수 이름 :Path
변수 값 :%PATH%;C:\Program Files\Java\jre6\bin;F:\JDK\bin;
이것을 적절한 경로로 변경하십시오.
답변
javac를 사용할 때이 문제가 발생했으며 명령 줄 옵션에서 선택하지 않는 것 같습니다.
-bash-3.2$ javac -Xmx256M HelloWorldApp.java
Error occurred during initialization of VM
Could not reserve enough space for object heap
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
여기에 해결책이 있습니다. _JAVA_OPTIONS
-bash-3.2$ export _JAVA_OPTIONS="-Xmx256M"
-bash-3.2$ javac HelloWorldApp.java
Picked up _JAVA_OPTIONS: -Xmx256M
그리고 이것은 잘 컴파일됩니다.
이것은 많은 RAM을 가지고 있지만 메모리 ulimits가 낮은 컴퓨터에서 발생합니다. Java는 머신에서 램을 감지하기 때문에 큰 힙을 할당하기로 결정하지만 ulimits 때문에 할당 할 수 없습니다.
답변
32 비트 Java를 실행하려면 메모리에 연속 여유 공간이 필요합니다. 큰 힙 크기를 지정하면 필요한 것보다 많은 사용 가능한 공간이 있어도 메모리에 너무 많은 사용 가능한 공간이 없을 수 있습니다.
이 경우 64 비트 버전의 Java를 설치하면 연속 메모리 요구 사항이 32 비트 Java에만 적용됩니다.
답변
-Xmx512M과 결합하여 -d64를 사용하여 64 비트 VM을 실행하고 있는지 확인하십시오. 64 비트 컴퓨터에서 64 비트 가상 컴퓨터를 실행하고 있다고 생각했지만 아니요. 64 비트 Java를 설치 한 후 -d64 옵션이 작동하고 -Xmx는 훨씬 더 큰 메모리 크기를 허용합니다.
java -d64 -Xmx512M mypackage.Test
답변
같은 오류가 발생하여 run.conf.bat에서 구성 하여이 문제를 해결했습니다.
Jboss5x에서 run.conf.bat 구성으로 JVM을 실행하십시오.
사용 가능한 메모리를 사용할 수 없으면 명령문을 전달할 때 run.conf.bat를 변경하십시오.
set "JAVA_OPTS=-Xms512m -Xmx512m -XX:MaxPermSize=256m"