2010-09-29 8 views
8

मेरे पास एक ऐसा प्रोग्राम है जो कभी-कभी ओओएमई, फेंकता है, मैं समझता हूं कि जेवीएम विकल्पों में एक झंडा है जिसे मैं सेट कर सकता हूं और जब भी कोई त्रुटि/अपवाद प्रकट होता है (जैसे ओओएमई) यह एक लिपि लिखता है जिसे मैंने लिखा था। स्क्रिप्ट उपयोगकर्ता को एक अधिसूचना देगा और एक अलग तर्क के साथ कार्यक्रम को कॉल करेगा ताकि इसे फिर से ओओएमई नहीं मिलेगा।JVM में OutOfMemoryError को कैसे पकड़ें और पकड़े जाने पर एक स्क्रिप्ट चलाएं?

क्या कोई इस ध्वज को सेट करने के बारे में जानता है? मुझे सेट करने के लिए जेवीएम विकल्प क्या हैं? मैंने हर जगह लाइन पर देखा और जवाब नहीं मिला।

कृपया मेरी मदद करें! धन्यवाद, ऐ

+1

कमांड प्रॉम्प्ट पर 'java -X' टाइप करें। आपको सभी विस्तारित विकल्पों की एक सूची मिल जाएगी। मदद हो सकती है। –

उत्तर

-3

मैं एक forum में एक सुझाव मिला: अपने आवेदन में OOME (सीधे तरह से पकड़ मुख्य, यह मानते हुए आप अकेले लड़ी रहे हैं) और पकड़ हैंडलर में ऐसा करते हैं:

catch (OutOfMemoryError not_again) { 
    System.gc(); 
    System.runFinalization(); 
    System.gc(); 
    System.out.println("Your error message"); 
} 

ढेर साफ़ एक अंतिम त्रुटि messag का निर्माण करने के लिए पर्याप्त स्मृति मुक्त कर सकता है मरने से पहले ई।

+0

धन्यवाद, लेकिन एप्लिकेशन बहुत अस्पष्ट है और मैं इसे अंदर नहीं पकड़ना चाहता हूं, मैं jVM से .dat फ़ाइल को कॉल करना पसंद करता हूं – Aye

+8

कोई सोचता है कि जेवीएम एक फेंकने से पहले जीसी के कुछ दौर का प्रयास करेगा ओओएमई स्वयं; यह वास्तव में कुछ भी करने की गारंटी नहीं है। –

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