Java >> Java tutorial >  >> Java

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 –

  1. 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.

  1. 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 .

  1. 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.


Java tag