Løsning: Feil oppstått under initialiseringen av VM kunne ikke reservere nok plass til objekthøyde
Selv om Java-applets ikke er en populær webteknologi i disse dager, er det utallige grunner til å distribuere en virtuell Java-maskin direkte på en Linux-server. Hvis du prøver å kjøre Linux java-kommandoen direkte enten på diskret maskinvare eller inne i sin egen VM, kan det hende du får en feil under initieringen av VM. Det kan ikke reservere nok plass til objekthoppmelding.
Dette ser nokså merkelig ut, fordi du mer enn sannsynligvis har nok RAM til å kjøre kommandoen, men det skyldes i stor grad en bestemt utfordring i den måten fysiske og virtuelle minnesidene blir brukt på. Hvis du angir noen relativt store størrelser, kan du helt omgå denne meldingen og kjøre Java-kommandoen slik du vil.
Metode 1: Bruk kommandolinjealternativer
Hvis du har prøvd å kjøre Java og fått denne meldingen, har du sannsynligvis allerede kjørt gratis kommandoen for å sikre at det er rikelig med forsyninger med minne for å kjøre programmet.
Legg merke til at på vår testmaskin hadde vi noen 2, 3 GB fysisk RAM, og ikke en eneste side med virtuelt minne var blitt brukt ennå. Hvis du oppdager at du har en minneknap, vil du lukke andre ting du har kjørt før du prøver det igjen. På den annen side kan de som fant ut at de har mye ledig minne, prøve å spesifisere en størrelse direkte.
For eksempel, på vår maskin var vi i stand til å kjøre kommandoen som java-Xms256m -Xmx512M og det fungerte som det ellers ville vært forventet å. Dette begrenser den størrelsen på bunken som den virtuelle Java-maskinen forsøker å reservere ved oppstart. Siden en uhindret virtuell maskin kan hypotetisk gjøre uvanlige ting, kan det kaste feilmeldinger på et ellers fritt system. Du kan også ønske å leke med de to verdiene før du finner den riktige kombinasjonen.
Dette kan være et problem uavhengig av hva du kjører på siden JVM har ingenting å gjøre med typen VM du kan bruke til å kjøre GNU / Linux.
PRO TIPS: Hvis problemet er med datamaskinen eller en bærbar PC / notatbok, bør du prøve å bruke Reimage Plus-programvaren som kan skanne arkiver og erstatte skadede og manglende filer. Dette fungerer i de fleste tilfeller der problemet er oppstått på grunn av systemkorrupsjon. Du kan laste ned Reimage Plus ved å klikke herMetode 2: Eksportere variablene for å gjøre endringen permanent
Når du finner en verdi som fungerer, kan du eksportere den for å gjøre den permanent for den økten. For eksempel brukte vi eksport _JAVA_OPTIONS = '- Xms256M -Xmx512M' fra bash-kommandoprompten og det tillot oss å kjøre java-kommandoen av seg selv uten noen andre alternativer før vi logget ut av serveren vår.
Det måtte kjøre igjen når vi logget inn i en annen økt, så du vil kanskje legge til det i alle relevante oppstartskript hvis du planlegger å bruke java-kommandoen ganske ofte. Vi la linjen til vår .bash_login-fil, og det syntes å virke hver gang vi brukte en påloggingsprompt uten å måtte kjøre den igjen, selv om du kanskje må finne et annet sted for det hvis du jobber med et annet skall.
Du har kanskje lagt merke til at bare visse maskinvarekonfigurasjoner utløser denne feilmeldingen. Det er fordi det vanligvis skjer på maskiner med mye fysisk RAM, men lavere ulimits for hvordan du bruker det. Java vil forsøke å tildele en stor blokk bare for å bli fortalt at den ikke kan, som den tolker som tom for minne.
Metode 3: Skriver ut gjeldende Java-alternativer
Hvis du har jobbet på kommandolinjen og vil ha en rask referanse til hva du for øyeblikket har satt _JAVA_OPTIONS-verdien til, kjør du bare ekko $ _JAVA_OPTIONS, og den vil umiddelbart skrive ut de nåværende verdiene. Dette er nyttig for feilsøking når du prøver å finne ut de riktige tallene for å prøve.
Husk at mens denne løsningen ikke krever noen andre spill rundt, vil Java kaste ut det som ikke kan reservere nok plass til objekthøydemelding hvis du noen gang finner deg selv på den korte enden av det virtuelle minnet. Hvis dette er tilfelle, vil du dobbeltkjekke hvilke prosesser som kjører, og muligens starte serveren om det er et alternativ. Du kan også opprette flere bytteplasser, men hvis dette er et problem, er det generelt bedre å prøve å rette det på en annen måte.
I sjeldne tilfeller at innstillingene dine synes å være riktige, men det fortsatt ikke fungerer, må du passe på at du har installert 64-biters Java-pakken, siden det burde være immun for dette problemet. Sammenhengende minnekrav gjelder bare for 32-bits versjonen av Java. Vi fant i en rekke tilfeller at 64-bitersversjonen prøvde å skape en 32-biters virtuell maskin, slik at spesifisering av -d64-alternativet på kommandolinjen gjorde det klart for oss.
PRO TIPS: Hvis problemet er med datamaskinen eller en bærbar PC / notatbok, bør du prøve å bruke Reimage Plus-programvaren som kan skanne arkiver og erstatte skadede og manglende filer. Dette fungerer i de fleste tilfeller der problemet er oppstått på grunn av systemkorrupsjon. Du kan laste ned Reimage Plus ved å klikke her