Kunne ikke reservere nok plads til objektbunken
Nybegyndere og erfarne programmører har stået over for denne fejl på et tidspunkt i deres liv – “Kunne ikke reservere nok plads til objektbunke ” . Det er irriterende, når du har noget rigtigt arbejde, der skal udføres! Fejlen opstår, når Java-processen ikke er i stand til at oprette en virtuel maskine på grund af mangel på hukommelsesplads.
Ændring af den nødvendige hukommelsesstørrelse for at køre JVM kan muligvis løse problemet. I dette indlæg vil vi se nærmere på fejlen og også dens løsninger.
Hvad er fejlen "Kunne ikke reservere nok plads til objektbunken"?
Heap-størrelse er hukommelsespladsen til lagring af Java-objekter. Denne heapstørrelse afhænger af visse faktorer, der inkluderer JVM-bitversion, systemhardware og operativsystem. Xmx og Xms VM argumenter kan bruges til at tildele maksimal og minimum heap-størrelse.
De 3 hovedårsager til denne fejl er –
- Java-applikationen blev udført uden korrekt angivelse af den nødvendige heap-størrelse
- Den angivne heapstørrelse er større end dit systems fysiske hukommelse
- Den nævnte maksimale heap-størrelse er større end heap-størrelsen på JVM
Hvordan rettes fejlen i heapstørrelsen?
Måderne til at slippe af med denne fejl for altid er –
-
Nævn bunkestørrelse på forhånd
Du kan gøre dette med kommandoen java -Xmx512M AppName . Normalt opstår denne fejl i 32 bit JVM, da det kræver sammenhængende ledig plads i hukommelsen for at køre applikationer. Det er også en bedre mulighed at bruge 64 bit JVM i stedet for 32 bit.
-
Angiv en heap-størrelse, der er lavere end din systemhukommelse
Antag, at du har 2 GB RAM. Angiv derefter en bunkestørrelse, der er lavere end den ved hjælp af kommandoen nedenfor:
java -Xms1336M -Xmx1336M AppName
En anden måde at tackle "Kunne ikke reservere nok plads til objektbunken ” fejl, i dette tilfælde, er ved at nævne heap-størrelsen i Java Options-miljøvariablen. For at gøre dette skal du gå til Kontrolpanel>System>Avanceret>Miljøvariabler>Systemvariabler . Opret derefter et nyt variabelnavn _JAVA_OPTIONS med heapstørrelse -Xmx256M .
-
Nævn bunkestørrelse, der er lavere end JVM-størrelsen
For at have nok ledig plads til at køre dit program problemfrit, skal du angive en lavere bunkestørrelse ved hjælp af denne kommando –
java -Xms1336M -Xmx1336M AppName
Sørg for at kontrollere allerede tildelte hukommelses- og heapstørrelser, før du ændrer dem. Det er bedst at bruge 64-bit versionen af Java for at undgå
“Kunne ikke reservere nok plads til objektbunke ” fejl.