2011-11-04 15 views
14

मुझे कॉन्फ़िगर करने की आवश्यकता है कि jvm क्रैश लॉग कहां बनाए जाते हैं। मुझे उनके नाम (hs_err_pid.log) पसंद है, लेकिन मैं उन्हें एक विशिष्ट फ़ोल्डर में बनाना चाहता हूं।जेवीएम क्रैश लॉग फ़ाइलों का स्थान कैसे सेट करें

here में आप देख सकते हैं कि आपके द्वारा बनाई गई फ़ाइल स्थापित करने के लिए

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

परम उपयोग कर सकते हैं, लेकिन अगर आप एक फ़ोल्डर में इस निर्धारित करते हैं, तो फ़ाइल मूल नामकरण परंपरा के साथ उस फ़ोल्डर में बनाई गई है , यह काम नहीं करता है, इसे नजरअंदाज कर दिया जाता है।

मैं this questions से जेवीएम 1.6 को क्रैश करके इसका परीक्षण कर रहा हूं, इसका उपयोग करके: पथदाशर दशर = नया पथदाशर (शून्य);

कोई भी इसे प्राप्त करने का तरीका जानता है?

+0

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

उत्तर

18

-XX:ErrorFile=/var/log/java/hs_err_pid%p.log काम करता है।

(जैसे .sh या .bat) http://www.oracle.com/technetwork/java/javase/felog-138657.html

पैरामीटर देखें वातावरण चर के लिए अनुमति नहीं है, लेकिन आप एक लांचर लिपि में वातावरण चरों का उपयोग कर सकते हैं और ओएस प्रतिस्थापन करेंगे। हालांकि, यह JVM प्रारंभ करने के समय पर्यावरण चर के मान का उपयोग करेगा और जब फ़ाइल बाद में लिखी जाएगी। इसके अलावा, ग्रहण में गुण गुण सेट करते समय पर्यावरण चर काम नहीं करते हैं।

JVM क्रैश डंप को सहेजने वाली मध्यवर्ती निर्देशिका नहीं बनाएगा। यदि निर्दिष्ट फ़ोल्डर मौजूद नहीं है तो क्रैश डंप डिफ़ॉल्ट स्थान पर सहेजा जाएगा।

+0

जावा द्वारा इस तरह के आदेश को कैसे चलाया जाए? मैंने सीएमडी के माध्यम से कोशिश की लेकिन सफलता नहीं मिली –

1

आप

जावा -XX के रूप में उपयोग करने के लिए है: ErrorFile =/var/log/जावा/hs_err_pid% p.log -Xbootclasspath/p :. क्रैश

कमांड प्रॉम्प्ट में। यहां, क्रैश मेरी जावा फ़ाइल है।

संबंधित मुद्दे