2009-12-10 12 views
12

Abbiamo un'applicazione desktop che utilizza JNI che occasionalmente causa l'arresto anomalo della JVM. Fortunatamente la JVM produce un file hs_err_pidXXXX.log, che è abbastanza utile per il debug di tali errori. Tuttavia, sembra sempre andare alla directory di lavoro corrente, ed è fastidioso scavare da lì, dato che tutti gli altri file di registro vanno in un "posto file di registro" specifico.È possibile specificare dove vanno i dump di arresto di JVM?

È possibile specificare un percorso diverso per i file "crash dump"? Come?

risposta

12

Joonas,

Anche se la HeapDumpPath lavora per l'heap dump non è la risposta per la tua domanda. Il dump dell'heap e il registro degli arresti di jvm sono due cose separate.

Per cambiare la destinazione del blocco della JVM corsa registro Java con questa opzione:/to/file

-XX:ErrorFile=/path/to/file. 

Path è il luogo che si desidera che il crash log JVM per l'uscita.

+0

come eseguire Java con questa opzione? Non ho potuto farlo tramite cmd –

+1

@MuhammedRefaat In console: 'java -XX: ErrorFile =/percorso/a/file.log -jar myapp.jar' – sja

+0

@sja grazie mille –

9

Per impostazione predefinita, il dump dell'heap viene creato in un file denominato java_pidpid.hprof nella directory di lavoro della VM. È possibile specificare un nome file o directory alternativo con l'opzione -XX: HeapDumpPath =. Ad esempio -XX: HeapDumpPath =/disk2/dumps causerà il dump dell'heap da generare nella directory /disk2/dumps.

+1

-1 La domanda riguarda il registro degli arresti anomali, non il dump dell'heap come indicato dalla risposta accettata. Questa è ancora una buona informazione ma non una risposta a questa domanda. –

Problemi correlati