2011-11-04 10 views
14

Devo configurare dove vengono creati i registri di arresto anomalo di jvm. Mi piace il nome che hanno (hs_err_pid.log) ma li voglio creati in una cartella specifica.come impostare la posizione dei file di registro di arresto di jvm

In here si può vedere che è possibile utilizzare il

-XX:ErrorFile=./hs_err_pid<pid>.log 

param per impostare il file creato, ma se si imposta questa opzione per una cartella, quindi viene creato il file in quella cartella con la convenzione di denominazione originale , non funziona, è ignorato.

L'ho provato bloccando jvm 1.6 da this questions, utilizzando questo: PathDasher dasher = new PathDasher (null);

Qualcuno conosce un modo per raggiungere questo obiettivo?

+0

http://stackoverflow.com/questions/1880166/is-it-possible-to-specify-where-jvms-crash-dumps-go –

risposta

18

-XX:ErrorFile=/var/log/java/hs_err_pid%p.log opere.

Vedi http://www.oracle.com/technetwork/java/javase/felog-138657.html

Il parametro non consente per le variabili di ambiente, ma è possibile utilizzare le variabili di ambiente in uno script di lancio (per esempio .sh o .bat) e il sistema operativo farà la sostituzione. Tuttavia, questo utilizzerà il valore della variabile di ambiente al momento dell'avvio della JVM e non quando il file verrà scritto in seguito. Inoltre, le variabili di ambiente non funzionano quando si impostano le proprietà di esecuzione in Eclipse.

La JVM non crea directory intermedie salvando il dump dello schianto. Il crash dump verrà salvato nel percorso predefinito se la cartella specificata non esiste.

+0

Come eseguire tale comando da java? L'ho provato attraverso cmd ma non ha avuto successo –

1

Dovete usare questo come

java XX: ErrorFile =/var/log/java/hs_err_pid% p.log -Xbootclasspath/p :. Crash

nel prompt dei comandi. Qui, Crash è il mio file java.

Problemi correlati