2009-12-10 20 views
12

JNM'yi kullanarak zaman zaman JVM'nin çökmesine neden olan bir masaüstü uygulamasına sahibiz. Neyse ki JVM, hs_err_pidXXXX.log dosya üretir, bu da bu tür hataların hatalarını ayıklamak için oldukça kullanışlıdır. Bununla birlikte, her zaman geçerli çalışma dizinine gitmek gibi görünüyor ve diğer günlük dosyalarımızın tümü belirli bir "günlük dosyası yerine" gittiğinden, oradan kazmak can sıkıcı.JVM'nin çökme dökümlerinin nereye gideceğini belirlemek mümkün mü?

Bu "kilitlenme dökümü" dosyaları için farklı konum belirtmek mümkün mü? Nasıl?

cevap

12

Joonas,

nedenle sorunuzun cevabı değildir dökümü. Yığın dökümü ve jvm kilitlenme günlüğü iki ayrı şeydir.

bu seçenekle jvm kilitlenme günlük çalışma java hedefini değiştirmek için:

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

Yol/için/dosya çıkışa JVM kilitlenme günlüğünü istediğiniz yerdir.

+0

Java bu seçenek ile nasıl çalıştırılır? Bunu yapamam cmd –

+1

@MuhammedRefaat Konsolda: java -XX: ErrorFile =/yol/to/file.log -jar myapp.jar' – sja

+0

@sja çok teşekkürler –

9

Varsayılan olarak yığın dökümü, VM'nin çalışma dizininde java_pidpid.hprof adlı bir dosyada oluşturulur. Alternatif bir dosya adı veya dizini -XX: HeapDumpPath = seçeneğiyle belirtebilirsiniz. Örneğin -XX: HeapDumpPath =/disk2/dumps, yığın dökümü /disk2/dumps dizininde oluşturulmasına neden olur. HeapDumpPath yığın için çalışıyor olsa da

+1

-1 Soru, yanıt kütüğüyle değil, kabul edilen yanıtın işaret ettiği gibi yığın dökümüyle ilgilidir. Bu hala iyi bir bilgi ancak bu soru için bir cevap değil. –