“Fout opgetreden tijdens initialisatie van VM; Kon niet genoeg ruimte reserveren voor objectheap” met -Xmx3G

Allereerst heb ik een doos met 8 gb ram, dus ik betwijfel of het totale geheugen het probleem is.
Deze applicatie werkt prima op machines met 6 GB of minder.

Ik probeer 3 GB aan ruimte te reserveren met -Xmx3G onder “VM-argumenten” in Configuraties uitvoeren in Eclipse.

Elke keer als ik meer dan 1500 MB probeer te reserveren, krijg ik deze foutmelding:
“Fout opgetreden tijdens initialisatie van VM; Kon niet genoeg ruimte reserveren voor objectheap” met -Xmx3G

Wat is hier aan de hand?


Antwoord 1, autoriteit 100%

Kan het zijn dat u een 32-bits jvm op die machine gebruikt?


Antwoord 2, autoriteit 87%

Hier is hoe u dit kunt oplossen:
Ga naarStart->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;  

Wijzig dit in uw geschikte pad.


Antwoord 3, autoriteit 60%

Dit is eigenlijk geen Eclipse-specifiek probleem; het is een generaal
Java-op-Windows-probleem. Het is vanwege de manier waarop de JVM geheugen toewijst aan
Ramen; het staat erop een aaneengesloten stuk geheugen toe te wijzen, wat:
vaak kan Windows het niet bieden, zelfs als er voldoende afzonderlijke delen zijn om
voldoen aan het toewijzingsverzoek.
Er zijn hulpprogramma’s die proberen Windows te helpen zijn geheugen te “defragmenteren”,
wat in theorie deze situatie zou helpen; maar ik heb het niet echt geprobeerd
ze serieus, dus kan niet spreken over hun effectiviteit.
Een ding dat ik soms heb gehoord dat kan helpen, is om Windows opnieuw op te starten
en, voordat u andere apps start, start u de Java-app die de
groot stuk geheugen. Als je geluk hebt, heeft Windows het niet gefragmenteerd
geheugenruimte nog en Java krijgt het aangrenzende blok dat wordt gevraagd.

Ergens op de interwebs zijn er meer technische verklaringen en
analyses van dit probleem, maar ik heb geen referenties bij de hand.

Ik vond dit echter wel, wat er handig uitziet: https://stackoverflow.com/a/497757/639520


Antwoord 4, autoriteit 32%

Eerst kan de JRE van 32 bits niet meer ~1,5Gb ram gebruiken. Dus als je meer wilt, gebruik dan een 64-bits JRE.

Ten tweede, wanneer een nieuwe JVM start, somt dit de -Xmx eigenschap op van alle JVM’s die draaien, en controleer of er genoeg geheugen over is op het systeem om op hun eigen -Xmx te draaien, als dat niet genoeg is, dan er treedt een fout op.


Antwoord 5, autoriteit 24%

Ik gebruikte Liferay met Tomcat-server van eclipse IDE.
Ik zat vast met dezelfde fout bij het klikken op het opstarten van de server.
Dubbelklik op de server van eclipse.
het opent de pagina Serveroverzicht. Geheugenargumenten bijgewerkt van -Xmx1024m -XX:MaxPermSize=256m naar -Xmx512m -XX:MaxPermSize=256m.
Toen werkte het voor mij.


Antwoord 6, autoriteit 13%

Zorg ervoor dat Eclipse daadwerkelijk dezelfde JVM draait als u denkt dat deze draait. Als je ooit java in je webbrowser gebruikt, zweeft er waarschijnlijk ook een 32-bits versie rond die voorrang kan krijgen als deze onlangs is geïnstalleerd of bijgewerkt.

Om absoluut zeker te zijn, raad ik aan deze twee regels toe te voegen aan je eclipse.ini-bestand bovenaan:

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

…waar op mijn computer C:/Java/jdk1.6.0_27/binwaar de JVM waarvan ik weet dat deze 64-bit is, zich bevindt. Zorg ervoor dat u de map bindaar heeft.

(Als bonus kun je in Windows 7 hiermee ook het tabblad “vastzetten”, daarom moest ik dit voor mijn eigen gebruik doen)


Antwoord 7, autoriteit 7%

Dit is het probleem van de heapgrootte. Bewerk uw .bat(Batch-bestand). Het kan Heap-grootte 1024 weergeven. Verander het in 512. Dan zou het moeten werken.


Antwoord 8, autoriteit 3%

Ik had hetzelfde probleem tijdens het gebruik van Eclipse, dat 32 bits was en de JVM die erdoor werd gebruikt, 64 bits was.
Toen ik de Eclipse naar 32-bits JVM stuurde, werkte het


Antwoord 9, autoriteit 3%

Zet het symbool #voor org.gradle.jvmargs=-Xmx1536min gradle.properties

# org.gradle.jvmargs=-Xmx1536m

Antwoord 10

Ik weet dat ik een beetje laat ben, maar hier komt mijn antwoord:

Ik heb zojuist de online Java-versie van Oracle geïnstalleerd (niet de offline 64-bits versie).

Na het toevoegen van de JAVA_HOME ENV-variabele, werkte het gewoon!

Ik hoop dat ik kan helpen 🙂


Antwoord 11

Waarschijnlijk probeer je toch de verkeerde opties.
Ik kreeg een soortgelijke fout met het ondersteunende foutenlogboek:

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

In mijn geval ondersteunde de software Java 8 nog niet (het script gebruikte oude JVM-argumenten), maar ik had standaard Java 8.


Antwoord 12

Een van de reden voor dit probleem is geen geheugen beschikbaar voor Tomcat om te beginnen. Probeer de ongewenste uitvoeringssoftware uit Windows te verwijderen en de Eclipse en Tomcat opnieuw te starten.


Antwoord 13

oplossing is eenvoudig. Niet nodig om diep in dit probleem te gaan.

Als u op 64bit machine gebruikt, volg dan hieronder stappen:

  • Unistall 32-bits Java First (check in C: \ Program Files (X86) voor zijn bestaan)
  • Installeer de nieuwere versie JDK KIT 64 bit (inclusief JRE)
  • Stel het milieupad in (om conflictfout te voorkomen als u twee verschillende 64bit JRE) hebt)
  • Check-in-opdrachtprompt door Javac-opdracht te typen.
  • Start / Gereed

U kunt twee verschillende Java hebben geïnstalleerd, maar vergeten geen pad te stellen.

Other episodes