programing

-Xmx3G를 사용하여 "VM 초기화 중 오류가 발생했습니다. 개체 힙에 충분한 공간을 예약할 수 없습니다."

newsource 2022. 9. 17. 10:02

-Xmx3G를 사용하여 "VM 초기화 중 오류가 발생했습니다. 개체 힙에 충분한 공간을 예약할 수 없습니다."

우선 RAM이 8GB인 박스가 있기 때문에 전체 메모리가 문제인지 의심됩니다.이 애플리케이션은 6GB 이하의 머신에서 정상적으로 동작하고 있습니다.

Eclipse의 "Run Configurations"에서 "VM Arguments" 아래의 -Xmx3G를 사용하여 3GB의 공간을 예약하려고 합니다.

1500MB를 초과하여 예약하려고 할 때마다 -Xmx3G를 사용하여 "VM 초기화 중 오류가 발생하였습니다.오브젝트 힙에 충분한 공간을 예약할 수 없습니다"라는 오류가 나타납니다.

이게 무슨 일이야?

그 기계에서 32비트 jvm을 사용하고 있는 것 같습니까?

수정 방법은 다음과 같습니다. Start->Control Panel->System->Advanced(tab)->Environment Variables->System

Variables->New:
Variable name: _JAVA_OPTIONS   
Variable value: -Xmx512M

Variable name: Path  
Variable value: ;C:\Program Files\Java\jre6\bin;F:\JDK\bin;  

적절한 경로로 변경합니다.

이는 Eclipse 고유의 문제가 아니라 일반적인 Java-on-Windows 문제입니다.이는 JVM이 Windows에서 메모리를 할당하는 방식 때문입니다. 할당 요청을 충족하기에 충분한 개별 청크가 있더라도 Windows에서 제공할 수 없는 연속적인 메모리 청크를 할당해야 하는 경우가 많습니다.Windows가 메모리를 「삭제」할 수 있도록 하는 유틸리티가 있어, 이론적으로는 이 상황에 도움이 됩니다.그러나 실제로 사용해 본 적이 없기 때문에, 그 효과에 대해서는 말할 수 없습니다.가끔 듣기로는 Windows를 재부팅하고 다른 앱을 시작하기 전에 대용량 메모리가 필요한 Java 앱을 부팅하는 것이 도움이 될 수 있다고 합니다.운이 좋으면 Windows는 메모리 공간을 아직 분할하지 않고 Java는 요청된 연속 블록을 얻을 수 있습니다.

인터넷 어딘가에 이 문제에 대한 기술적인 설명과 분석이 더 있지만, 저는 참고 자료를 가지고 있지 않습니다.

그래도 도움이 될 것 같습니다.https://stackoverflow.com/a/497757/639520

우선 32비트의 JRE는 1.5Gb 이상의 RAM을 사용할 수 없습니다.따라서 더 필요한 경우 64비트 JRE를 사용합니다.

둘째, 새 JVM이 시작되면 실행 중인 모든 JVM의 -Xmx 속성이 합산되어 시스템에 자체 Xmx로 실행할 수 있는 메모리가 남아 있는지 확인합니다.충분하지 않으면 오류가 발생합니다.

Eclipse IDE의 Tomcat 서버와 Liferay를 사용하고 있었습니다.서버 부팅 시 클릭 시 동일한 오류가 발생하였습니다.Eclipse에서 서버를 두 번 클릭합니다.Server Overview 페이지가 열립니다.메모리 인수를 -Xmx1024m -XX:MaxPermSize=256m에서 -Xmx512m -XX:MaxPermSize=256m로 업데이트했습니다.그리고 그것은 나에게 효과가 있었다.

Eclipse가 실제로 실행 중인 JVM과 동일한 JVM을 실행하고 있는지 확인합니다.웹 브라우저에서 java를 사용하는 경우 32비트 버전도 최근에 설치 또는 업데이트되면 우선될 수 있습니다.

, 이 두 것을 합니다.eclipse.ini'이것'은 다음과 같습니다.

-vm 
C:/Java/jdk1.6.0_27/bin

내에...내 머신의 어디에C:/Java/jdk1.6.0_27/bin64년 JVM으로 하다. 계십시오.bin폴더를 선택합니다.

(Windows 7 에서는, 보너스로 「탭을 고정」할 수도 있기 때문에, 이 조작을 자신의 용도에 맞추어 실시할 필요가 있었습니다).

이것은 히프 사이즈의 문제입니다.<고객명>님의 .bat(일부러)1024번입니다. 동작합니다.512는 동작합니다.

★★★★★★★★★★★★★★★★★★★★★★★#에 있는 org.gradle.jvmargs=-Xmx1536m.properties의 경우

 # org.gradle.jvmargs=-Xmx1536m

저도 Eclipse 32비트, JVM 64비트 사용 시 같은 문제가 있었습니다.Eclipse를 32비트 JVM으로 라우팅했을 때 동작했습니다.

조금 늦은 건 알지만, 제 대답은 다음과 같습니다.

방금 Oracle에서 Java online Version을 설치했습니다(오프라인 64비트 버전이 아님).

JAVA_를 추가한 후HOME ENV 변수, 방금 작동했어!

도움이 되었으면 합니다:)

어쨌든 당신은 잘못된 선택을 시도하고 있는 것 같습니다.지원 오류 로그에서 다음과 같은 오류가 발생했습니다.

Java HotSpot(TM) Client VM warning: ignoring option PermSize=32M; support was removed in 8.0
Java HotSpot(TM) Client VM warning: ignoring option MaxPermSize=128M; support was removed in 8.0

제 경우 소프트웨어는 아직 Java 8을 지원하지 않지만(스크립트는 오래된 JVM 인수를 사용하고 있었습니다), 기본적으로는 Java 8을 사용하고 있었습니다.

이 문제의 원인 중 하나는 Tomcat을 시작할 수 있는 메모리가 없기 때문입니다.원치 않는 실행 소프트웨어를 창에서 삭제하고 이클립스 및 Tomcat을 다시 시작하십시오.

솔루션은 간단합니다.이 문제를 깊이 파고들 필요는 없다.

64비트 머신상에서 동작하고 있는 경우는, 다음의 순서에 따릅니다.

  • 먼저 32비트 Java 언인스톨(C:\Program Files(x86) 확인)
  • 새로운 버전의 JDK 키트 64비트 설치(JRE 포함)
  • 환경 경로 설정(두 개의 다른 64비트 JRE가 있는 경우 충돌 오류를 방지하기 위해)
  • javac command를 입력하여 명령 프롬프트를 체크 인합니다.
  • 재시작/완료

두 개의 다른 Java를 설치할 수 있지만 경로 설정을 잊지 마십시오.

환경변수에 JAVA_OPTS=-Xms256m-Xmx512m을 설정해 주시면 문제가 해결될 것 같습니다.

32비트 버전 또는 64비트 버전의 Java를 사용하고 있는지 확인합니다.를 확인하려면명령어를 사용합니다.

java -version

출력의 세 번째 행은 32비트인지 64비트인지를 나타냅니다.

여기에 이미지 설명 입력

32비트인 경우 64비트 버전을 제거하고 설치합니다.

언급URL : https://stackoverflow.com/questions/9303889/error-occurred-during-initialization-of-vm-could-not-reserve-enough-space-for