Løsning: Fejl opstået under initialisering af VM kunne ikke reservere nok plads til objekthøjde
Selv om Java-applets ikke er en populær webteknologi i disse dage, er der utallige grunde til at installere en virtuel Java-maskine direkte på en Linux-server. Hvis du forsøger at køre Linux java-kommandoen direkte enten på diskret hardware eller inde i sin egen VM, så kan du få en fejl, der opstod under initialiseringen af VM, kunne ikke reservere nok plads til objekthoppebesked.
Det ser nok nok ud, fordi du mere end sandsynligt har nok RAM til at køre kommandoen, men det skyldes i høj grad en bestemt quirk i den måde, fysiske og virtuelle hukommelsessider bliver brugt. Hvis du angiver nogle forholdsvis store størrelser, skal du helt omgå denne meddelelse og køre java-kommandoen som du ville andre.
Metode 1: Brug kommandolinjeindstillinger
Hvis du har forsøgt at køre java og fået denne besked, har du sikkert allerede kørt den gratis kommando for at sikre, at der er rigelige forsyninger af hukommelse til at køre programmet i.
Bemærk, at vi på vores testmaskine havde omkring 2, 3 GB fysisk RAM, og ikke en enkelt side med virtuel hukommelse var blevet brugt endnu. Hvis du bemærker, at du har en hukommelsesknus, så vil du lukke andre ting, du har kørt, før du prøver igen. På den anden side kan de, der fandt ud af, at de har masser af ledig hukommelse, prøve at specificere en størrelse direkte.
For eksempel kunne vi på vores maskine køre kommandoen som java-Xms256m -Xmx512M, og det fungerede som det ellers ville have været forventet at. Dette begrænser den højdeformat, som Java Virtual Machine forsøger at reservere ved opstart. Da en uhindret virtuel maskine kunne hypotetisk gøre usædvanlige ting, kan det smide fejlmeddelelser på et ellers frit system. Du kan også gerne spille rundt med disse to værdier, før du finder den rigtige kombination.
Dette kan være et problem uanset hvad du kører det på, da JVM ikke har noget at gøre med den type VM, du muligvis bruger til at køre GNU / Linux.
PRO TIP: Hvis problemet er med din computer eller en bærbar computer / notesbog, skal du prøve at bruge Reimage Plus-softwaren, som kan scanne lagrene og udskifte korrupte og manglende filer. Dette virker i de fleste tilfælde, hvor problemet er opstået på grund af systemkorruption. Du kan downloade Reimage Plus ved at klikke herMetode 2: Eksportere variablerne for at gøre ændringen permanent
Når du finder en værdi, der fungerer, kan du eksportere den for at gøre den permanent til den pågældende session. Eksempelvis brugte vi eksport _JAVA_OPTIONS = '- Xms256M -Xmx512M' fra bash kommandoprompten og det tillod os at køre java-kommandoen af sig selv uden andre muligheder, indtil vi logget ud af vores server.
Det skulle køres igen, når vi logget ind i en anden session, så du vil muligvis gerne tilføje den til relevante startskripter, hvis du planlægger at bruge java-kommandoen ganske ofte. Vi tilføjede linjen til vores .bash_login-fil, og det syntes at virke hver gang vi brugte en login prompt uden at skulle køre den igen, selvom du måske skal finde en anden placering til den, hvis du arbejder med en anden skal.
Du har måske bemærket, at kun visse hardwarekonfigurationer udløser denne fejlmeddelelse. Det skyldes, at det normalt sker på maskiner med en masse fysisk RAM, men lavere ulimits for, hvordan man bruger det. Java vil forsøge at allokere en stor blok kun for at blive fortalt, at den ikke kan, som den fortolker som kører ud af hukommelsen.
Metode 3: Udskrivning Aktuelle Java-indstillinger
Hvis du har arbejdet på kommandolinjen og ønsker en hurtig henvisning til, hvad du for øjeblikket har indstillet værdien _JAVA_OPTIONS, skal du blot køre ekko $ _JAVA_OPTIONS, og det vil straks udskrive de aktuelle værdier. Dette er nyttigt til fejlfinding, når du forsøger at finde ud af de rigtige tal til at prøve.
Husk, at selvom denne løsning ikke kræver nogen anden afspilning, vil Java smide ud, og det kan ikke reservere nok plads til objekthung meddelelse, hvis du nogensinde finder dig selv i den korte ende af virtuel hukommelse. Hvis dette er tilfældet, vil du gerne dobbelttjekke, hvilke processer der kører, og muligvis genstarte serveren, hvis det er en mulighed. Du kan også oprette mere bytteplads, men hvis dette er et problem, er det generelt bedre at forsøge at rette det på en anden måde.
I det sjældne tilfælde, at dine indstillinger synes at være rigtige, men det stadig ikke fungerer, skal du sørge for at have installeret 64-bit Java-pakken, da det skal være immun for dette problem. Tilhængende hukommelseskrav gælder kun for 32-bit version af Java. Vi fandt i en håndfuld tilfælde, at 64-bit versionen forsøgte at oprette en 32-bit virtuel maskine, så der blev specificeret alternativet -d64 på kommandolinjen.
PRO TIP: Hvis problemet er med din computer eller en bærbar computer / notesbog, skal du prøve at bruge Reimage Plus-softwaren, som kan scanne lagrene og udskifte korrupte og manglende filer. Dette virker i de fleste tilfælde, hvor problemet er opstået på grund af systemkorruption. Du kan downloade Reimage Plus ved at klikke her