Computer >> कंप्यूटर >  >> समस्या निवारण >> Linux

फिक्स:VM के प्रारंभ के दौरान हुई त्रुटि ऑब्जेक्ट हीप के लिए पर्याप्त स्थान आरक्षित नहीं कर सका

भले ही जावा एप्लेट इन दिनों एक लोकप्रिय वेब तकनीक नहीं हैं, लेकिन जावा वर्चुअल मशीन को सीधे लिनक्स सर्वर पर तैनात करने के अनगिनत कारण हैं। यदि आप लिनक्स जावा कमांड को सीधे असतत हार्डवेयर पर या अपने स्वयं के वीएम के अंदर चलाने का प्रयास करते हैं, तो आपको "वीएम के प्रारंभ के दौरान त्रुटि हुई, ऑब्जेक्ट हीप के लिए पर्याप्त स्थान आरक्षित नहीं कर सका" संदेश मिल सकता है।

यह शायद अजीब लगता है क्योंकि आपके पास कमांड चलाने के लिए पर्याप्त रैम होने की संभावना अधिक है, लेकिन यह काफी हद तक भौतिक और आभासी मेमोरी पेजों के उपयोग के तरीके में एक विशिष्ट विचित्रता के कारण है। कुछ अपेक्षाकृत बड़े आकारों को निर्दिष्ट करने से आप इस संदेश को पूरी तरह से बायपास कर सकते हैं और जावा कमांड को वैसे ही चला सकते हैं जैसे आप किसी अन्य को करेंगे।

विधि 1:कमांड लाइन विकल्पों का उपयोग करना

यदि आपने जावा चलाने की कोशिश की है और यह संदेश प्राप्त किया है, तो आप शायद यह सुनिश्चित करने के लिए पहले ही फ्री कमांड चला चुके हैं कि प्रोग्राम को चलाने के लिए मेमोरी की पर्याप्त आपूर्ति है।

फिक्स:VM के प्रारंभ के दौरान हुई त्रुटि ऑब्जेक्ट हीप के लिए पर्याप्त स्थान आरक्षित नहीं कर सका

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

उदाहरण के लिए, हमारी मशीन पर हम कमांड को java -Xms256m -Xmx512M के रूप में चलाने में सक्षम थे और इसने काम किया जैसे कि अन्यथा इसकी उम्मीद की जाती। यह ढेर के आकार को बाधित करता है जिसे जावा वर्चुअल मशीन स्टार्टअप पर आरक्षित करने का प्रयास करती है। चूंकि एक अनियंत्रित वर्चुअल मशीन काल्पनिक रूप से असामान्य चीजें कर सकती है, यह त्रुटि संदेशों को अन्यथा मुक्त सिस्टम पर फेंक सकती है। सही संयोजन खोजने से पहले आप उन दो मूल्यों के साथ खेलना चाह सकते हैं।

यह एक मुद्दा हो सकता है चाहे आप इसे किस पर चला रहे हों क्योंकि JVM का उस VM के प्रकार से कोई लेना-देना नहीं है जिसका उपयोग आप GNU/Linux को चलाने के लिए कर रहे हैं।

विधि 2:परिवर्तन को स्थायी बनाने के लिए चर का निर्यात करना

जब आपको कोई मान मिलता है जो काम करता है तो आप इसे उस सत्र के लिए स्थायी बनाने के लिए निर्यात कर सकते हैं। उदाहरण के लिए, हमने बैश कमांड प्रॉम्प्ट से निर्यात _JAVA_OPTIONS='-Xms256M -Xmx512M' का उपयोग किया और इसने हमें अपने सर्वर से लॉग आउट होने तक बिना किसी अन्य विकल्प के जावा कमांड को चलाने की अनुमति दी।

जब हम दूसरे सत्र में लॉग इन करते हैं तो इसे फिर से चलाने की आवश्यकता होती है, इसलिए यदि आप अक्सर जावा कमांड का उपयोग करने की योजना बनाते हैं तो आप इसे किसी भी प्रासंगिक स्टार्टअप स्क्रिप्ट में जोड़ना चाहेंगे। हमने अपनी .bash_login फ़ाइल में लाइन जोड़ दी है और यह हर बार काम करती प्रतीत होती है जब हम इसे फिर से चलाने के बिना लॉगिन प्रॉम्प्ट का उपयोग करते हैं, हालांकि यदि आप एक अलग शेल के साथ काम कर रहे हैं तो आपको इसके लिए कोई अन्य स्थान ढूंढना पड़ सकता है।

आपने देखा होगा कि केवल कुछ हार्डवेयर कॉन्फ़िगरेशन ही इस त्रुटि संदेश को ट्रिगर करते हैं। ऐसा इसलिए है क्योंकि यह आमतौर पर बहुत अधिक भौतिक RAM वाली मशीनों पर होता है, लेकिन इसका उपयोग करने के लिए कम सीमाएँ होती हैं। जावा केवल एक विशाल ब्लॉक आवंटित करने का प्रयास करेगा, यह बताने के लिए कि वह नहीं कर सकता, जिसे वह स्मृति से बाहर होने के रूप में व्याख्या करता है।

विधि 3:वर्तमान जावा विकल्प प्रिंट करना

यदि आप कमांड लाइन पर काम कर रहे हैं और आप वर्तमान में _JAVA_OPTIONS मान को सेट करने के लिए एक त्वरित संदर्भ चाहते हैं, तो बस echo $_JAVA_OPTIONS चलाएं और यह तुरंत वर्तमान मानों को प्रिंट कर लेगा। जब आप कोशिश करने के लिए सही अंकों का पता लगाने की कोशिश कर रहे हों तो समस्या निवारण के लिए यह उपयोगी है।

ध्यान रखें कि जब इस फिक्स को किसी अन्य खेल की आवश्यकता नहीं होनी चाहिए, तो जावा "ऑब्जेक्ट हीप के लिए पर्याप्त स्थान आरक्षित नहीं कर सका" संदेश को फेंक देगा यदि आप कभी भी वर्चुअल मेमोरी के छोटे छोर पर खुद को वास्तव में पाते हैं। यदि ऐसा है, तो आप दोबारा जांचना चाहेंगे कि वर्तमान में कौन सी प्रक्रियाएं चल रही हैं और यदि यह एक विकल्प है तो संभवतः सर्वर को पुनरारंभ करें। आप अधिक स्वैप स्थान भी बना सकते हैं, लेकिन यदि यह एक समस्या है तो इसे किसी अन्य तरीके से ठीक करने का प्रयास करना बेहतर है।

दुर्लभ मामले में कि आपकी सेटिंग्स सही लगती हैं लेकिन यह अभी भी काम नहीं कर रही है, सुनिश्चित करें कि आपने 64-बिट जावा पैकेज स्थापित किया है क्योंकि यह इस समस्या से प्रतिरक्षा होना चाहिए। निरंतर स्मृति आवश्यकताएँ केवल जावा के 32-बिट संस्करण पर लागू होती हैं। हमने पाया कि कुछ मामलों में 64-बिट संस्करण ने 32-बिट वर्चुअल मशीन बनाने की कोशिश की, इसलिए कमांड लाइन पर -d64 विकल्प निर्दिष्ट करने से यह हमारे लिए ठीक हो गया।


  1. फिक्स विंडोज 10 में जावा वर्चुअल मशीन नहीं बना सका

    जावा के ठीक से स्थापित होने पर जावा-आधारित प्रोग्राम या गेम हमेशा-विश्वसनीय होते हैं। लेकिन हाल ही में उपयोगकर्ताओं ने बताया है कि Minecraft जैसे जावा प्रोग्राम चलाने का प्रयास करते समय वे जावा वर्चुअल मशीन नहीं बना सके। इसका अर्थ है कि जावा प्रोग्राम द्वारा कार्य करने के लिए उपयोग की जाने वाली वर्च

  1. Windows 11 पर Microsoft Excel त्रुटि चलाने के लिए अपर्याप्त मेमोरी को कैसे ठीक करें

    विंडोज 11 पर माइक्रोसॉफ्ट एक्सेल चलाने के लिए पर्याप्त मेमोरी नहीं त्रुटि के साथ अटक गया? तो, इसका क्या मतलब है, और आप अपने डिवाइस पर एक्सेल ऐप का उपयोग क्यों नहीं कर पा रहे हैं? हाँ, हमें यकीन है कि आपका मन अभी प्रश्नों से भरा होगा! चिंता मत करो; हम आपकी सहायता के लिए यहां हैं। Microsoft Excel Off

  1. "Windows 10 अपडेट के लिए पर्याप्त डिस्क स्थान नहीं" त्रुटि को कैसे ठीक करें

    अपडेट आपके ऑपरेटिंग सिस्टम को नवीनतम सुविधाओं और सुरक्षा संवर्द्धन तक पहुंच प्रदान करते हैं। परिणामस्वरूप आप अपने पीसी को बार-बार अपडेट करना चाह सकते हैं। हालाँकि, स्थापना प्रक्रिया शुरू होने से पहले Windows यह सुनिश्चित करने के लिए जाँच करता है कि आपकी आंतरिक डिस्क पर पर्याप्त संग्रहण स्थान है। यदि