2013-05-28 13 views
5

Sto usando java "1.6.0_24" OpenJDK. A volte, quando eseguo il mio programma, tutto quello che ottiene è un messaggioImpossibile creare java VM --- come posso ottenere più messaggi di errore dettagliati?

Could not create the Java virtual machine.". 

Altre volte, il programma viene eseguito perfettamente bene.

C'è qualche insieme di opzioni che posso aggiungere per ottenere un output più dettagliato sull'errore esatto (forse anche qualcosa di simile a un core dump?).

Questo non è probabilmente legato alla dimensione heap poiché in tal caso, si dà un messaggio di errore preciso e chiaro come: -

Error occurred during initialization of VM 
Could not reserve enough space for object heap 
Could not create the Java virtual machine. 

Questo ho potuto risolvere con l'impostazione -Xms e -Xmx modo appropriato. Tuttavia, la JVM uscire senza stampare qualcos'altro non è molto utile.

Giusto per chiarire, la mia domanda riguarda la convinzione di più messaggi di errore dettagliati o qualche tipo di file di stato/core dump che posso quindi utilizzare per il debug.

+0

Bene, ho una macchina con 64 GB di RAM e ho impostato -Xms su 100M. Mentre questa macchina fa parte di un cluster, la memoria libera è solitamente di circa 16 GB (che ho verificato eseguendo in alto su un terminale separato). Stessi problemi anche con questo ... (Ho altre macchine con meno RAM nel cluster ed è per questo che ho impostato -Xms a 100M per risolvere il problema _that_) – owagh

+0

Non sono sicuro di cosa potrebbe essere più dettagliato di quello. L'allocazione della memoria è una delle prime cose che JVM inizializza. Ovviamente, il tuo problema deriva da parametri -Xmx non -Xms. JVM alloca l'heap alla dimensione massima durante l'inizializzazione. Il tuo limite massimo è troppo alto. Su JVM a 32 bit, è possibile utilizzare solo non più di 1,5 GB – gigadot

risposta

1

Inizia con un piccolo heap. Imposta -Xm molto più in basso di -Xmx. Aumentare la dimensione massima dell'heap, da -Xmx a 1024 (o 2048 a seconda dell'applicazione). Imposta -Xms a qualche 512 (direi metà di Xmx)

+0

. L'ho già provato. Questo risolve alcuni problemi ma non tutti. Se si legge la seconda metà della domanda, si dice che ho già usato -Xms e -Xmx per risolvere alcuni problemi relativi alla mancanza di memoria. Grazie comunque! – owagh

+0

@owagh Quale sistema operativo utilizzi? Immagino che sia Unix/Linux se sì che sapore? – avijendr

Problemi correlati