2012-03-27 20 views
23

di fronte ad alcuni problemi con l'inizializzazione della macchina virtuale java. quando sto usando l'account di root posso lavorare correttamente con java. ma quando io sono un account utente restituisce seguenti erroriImpossibile creare la Java virtual machine

[email protected]# $JAVA_HOME/bin/java -version 
Error occurred during initialization of VM 
Could not reserve enough space for object heap 
Could not create the Java virtual machine. 

Non sembra un problema di memoria, come le stesse opere di comando con account di root. La memoria disponibile (free -m) è più di 1200MB Inoltre ho provato aumentando i limiti di memoria JVM

+0

Sei sicuro che entrambi stiano utilizzando lo stesso eseguibile java? Inoltre, penso che si possa limitare la memoria disponibile ad un utente specifico, se si esegue ulimit -a come utente, si dice un limite per la dimensione massima della memoria? –

+0

due righe relative alla memoria vanno come 'memoria massima bloccata (kbytes, -l) 32 dimensione massima della memoria (kbytes, -m) 200000' –

+0

' memoria virtuale (kbytes, -v) 200000' –

risposta

71

Basta fare attenzione. Otterrete questo messaggio se si tenta di inserire un comando che non esiste come questo

/usr/bin/java -v

+1

Il tuo commento ha reso la mia giornata. Ora, se fossi abbastanza intelligente da configurare le notifiche di bei commenti alla mia email da Stackoverflow. hahahaha –

+0

Questa dovrebbe essere accettata risposta – deepdive

6

ho avuto questo problema oggi, e per me il problema era che avevo assegnato troppa memoria:

-Xmx1024M -XX:MaxPermSize=1024m

una volta ho ridotto lo spazio PermGen, tutto ha funzionato bene:

-Xmx1024M -XX:MaxPermSize=512m

so che non assomiglia molto di un differenc e, ma la mia macchina ha solo 4 GB di RAM, e apparentemente è stata la goccia che ha fatto traboccare il vaso. Java VM stava fallendo immediatamente dopo ogni azione perché non riusciva ad allocare la memoria.

1

Il problema è stato risolto quando ho modificato il file /etc/bashrc con gli stessi contenuti di /etc/profiles e in /etc/profiles.d/limits.sh e ho effettuato un nuovo accesso.

+3

Prova 'java -version' prima di fare ciò che ha suggerito. Inoltre è la risposta dall'interrogante e non spiega esattamente cosa stanno facendo i passaggi ... – deepdive

5

impostare la memoria JVM:

export _JAVA_OPTIONS=-Xmx512M

1

Marchio certo che la memoria fisica disponibile è più della memoria min/max definita dalla VM.

Problemi correlati