2012-02-16 10 views
64

का उपयोग करके सबसे पहले, मेरे पास 8 जीबी रैम वाला एक बॉक्स है, इसलिए मुझे संदेह है कि कुल स्मृति समस्या है। यह एप्लिकेशन 6 जीबी या उससे कम मशीनों पर ठीक चल रहा है।"वीएम की शुरुआत के दौरान त्रुटि हुई; ऑब्जेक्ट ढेर के लिए पर्याप्त जगह आरक्षित नहीं कर सका "-Xmx3G

मैं ग्रहण में रन कॉन्फ़िगरेशन में "वीएम तर्क" के तहत -Xmx3G का उपयोग करके 3 जीबी स्पेस आरक्षित करने की कोशिश कर रहा हूं।

हर बार जब मैं 1500 एमबी से अधिक आरक्षित करने का प्रयास करता हूं, तो मुझे यह त्रुटि मिलती है: "वीएम की शुरुआत के दौरान त्रुटि हुई; ऑब्जेक्ट ढेर के लिए पर्याप्त जगह आरक्षित नहीं कर सका "-Xmx3G

क्या चल रहा है?

+2

जावा के आपके संस्करण का क्या संस्करण है? आप किस ऑपरेटिंग सिस्टम पर चल रहे हैं? –

+0

यह Win7 था, और मेरे पास 3 अलग-अलग जावा संस्करण स्थापित थे। उनमें से एक 32-बिट जेआरई था जो ग्रहण का उपयोग कर रहा था। – user1212731

+3

एक उत्तर को सही के रूप में चिह्नित करने के लिए मत भूलना। – xdhmoore

उत्तर

51

क्या यह हो सकता है कि आप उस मशीन पर 32-बिट जेवीएम का उपयोग कर रहे हों?

+5

बेवकूफ सवाल के लिए खेद है, लेकिन मैं इसे कैसे देखूं? और मैं 64-बिट का उपयोग कैसे कर सकता हूं? – user1212731

+2

असल में, मैंने कमांड लाइन में जावा-डी 64-वर्जन की कोशिश की, और यह 64-बिट सर्वर वीएम के साथ आया। – user1212731

+6

जाहिर है ग्रहण जेआरई के 32-बिट संस्करण का उपयोग कर रहा था जिसे मैंने पहले स्थापित किया था, भले ही 64-बिट नवीनतम स्थापना थी। मैंने इस समस्या को हल करने के लिए प्राथमिकताओं -> स्थापित जेआरई में सेटिंग्स को बदल दिया। उत्तर देने के लिए आपका धन्यवाद! किसी भी मामले में – user1212731

37

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

इंटरव्यू पर कहीं और तकनीकी स्पष्टीकरण और इस समस्या का विश्लेषण करते हैं, लेकिन मेरे पास कोई संदर्भ आसान नहीं है।

मैं इस मिला है, हालांकि, उस स्थिति में उपयोगी दिखता है: https://stackoverflow.com/a/497757/639520

+1

मेरे मामले में, आपका उत्तर काम लगता है। मैंने विंडोज़ को पुनरारंभ नहीं किया लेकिन मैंने अपनी खिड़कियों में अन्य ऐप्स बंद करने की कोशिश की और फिर जावा चलाया और यह वीएम को लात मारने में सक्षम था। – sttaq

+0

यह था! धन्यवाद!!! – manyways

+0

आपने मेरी दुनिया को बर्बाद होने से बचा लिया है। –

8

सुनिश्चित करें कि ग्रहण वास्तव में एक ही JVM आपको लगता है कि यह चल रहा है चल रहा है। यदि आप कभी भी अपने वेब ब्राउज़र में जावा का उपयोग करते हैं, तो आपके पास 32-बिट संस्करण भी हो सकता है, जो कि हाल ही में स्थापित या अद्यतन होने पर प्राथमिकता ले सकता है। मेरी मशीन C:/Java/jdk1.6.0_27/bin जहां JVM मैं जानता हूँ कि 64-बिट स्थित है पर

-vm 
C:/Java/jdk1.6.0_27/bin 

... जहां:

बिल्कुल यह सुनिश्चित हो, मैं शीर्ष पर अपने eclipse.ini फाइल करने के लिए इन दो पंक्तियों जोड़ने की सलाह देते। सुनिश्चित करें कि bin फ़ोल्डर वहां है।

(एक बोनस के रूप में, विंडोज 7 पर, यह भी अनुमति देता है क्यों मैं अपने खुद के उपयोग के लिए यह करने के लिए किया था कि आप वास्तव में है जो "टैब को पिन करने के लिए")

+0

-vm तर्क जावा निष्पादन योग्य को इंगित करना चाहिए, केवल एक फ़ोल्डर नहीं। Http://wiki.eclipse.org/%C2%A0eclipse.ini#Specifying_the_JVM –

+1

गलत देखें। इस ग्रहण बग को देखें: https://bugs.eclipse.org/bugs/show_bug.cgi?id=314805 –

+0

यह वास्तव में मुद्दा था! ग्रहण जेआरई के 32-बिट संस्करण का उपयोग कर रहा था जिसे मैंने किसी बिंदु पर स्थापित किया था। उत्तर के लिए बहुत बहुत धन्यवाद और मुझे सही दिशा में ले जा रहा है! मैं इसकी बहुत सराहना करता हूं। – user1212731

18

पहले 32bits उपयोग नहीं कर सकते में JRE राम के अधिक ~ 1.5 जीबी। तो यदि आप और चाहते हैं, तो 64 बिट्स जेआरई का उपयोग करें।

दूसरा, जब कोई नया जेवीएम शुरू होता है, तो यह सभी जेवीएम की एक्सएक्सएक्स संपत्ति है जो चल रहा है, और जांचें कि क्या सिस्टम पर पर्याप्त स्मृति है जो अपने स्वयं के एक्सएक्सएक्स पर चलाने के लिए पर्याप्त है, अगर पर्याप्त नहीं है त्रुटि होती है।

4

यह ढेर आकार का मुद्दा है। अपनी .bat (बैच फ़ाइल) संपादित करें। यह ढेर आकार 1024 दिखा रहा है।इसे 512 में बदलें, फिर इसे काम करना चाहिए।

12

मैं ग्रहण आईडीई से टॉमकैट सर्वर के साथ लिफेरे का उपयोग कर रहा था। मैं सर्वर पर क्लिक करने पर क्लिक करने के लिए उसी त्रुटि से फंस गया था। ग्रहण से सर्वर पर डबल क्लिक करें। यह सर्वर अवलोकन पृष्ठ खोलता है। -Xmx1024m -XX से अद्यतन स्मृति तर्क: MaxPermSize = 256m से -Xmx512m -XX: MaxPermSize = 256m। फिर यह मेरे लिए काम कर रहा था।

+0

http://www.genericarticles.com/mediawiki/index .php? title = How_to_increase_tomcat_memory_inside_eclipse – bulltorious

1

मुझे ग्रहण का उपयोग करते समय भी वही समस्या थी जो कि 32 बिट था और इसके द्वारा उपयोग किया जाने वाला JVM 64 बिट था। जब मैंने ग्रहण को 32 बिट जेवीएम पर रूट किया तो यह

0

शायद आप गलत विकल्प का प्रयास कर रहे हैं। मैं त्रुटि लॉग समर्थन के साथ एक समान त्रुटि मिली: मेरे मामले

Java HotSpot(TM) Client VM warning: ignoring option PermSize=32M; support was removed in 8.0 
Java HotSpot(TM) Client VM warning: ignoring option MaxPermSize=128M; support was removed in 8.0 

इम, सॉफ्टवेयर अभी तक जावा 8 का समर्थन नहीं किया (स्क्रिप्ट वर्ष JVM तर्कों का उपयोग किया गया था), लेकिन मैं डिफ़ॉल्ट रूप से जावा 8 था। अपने उचित पथ कोStart->Control Panel->System->Advanced(tab)->Environment Variables->System

बदलें इस के लिए जाओ:

34

यहाँ कैसे इसे ठीक करने के लिए है।

+1

कार्य किया! धन्यवाद – Hardik4560

+2

धन्यवाद भाई !! यह आकर्षण की तरह काम करता है। – uniquephase

+1

दूसरों के लिए बस एक नोट। आप एक सिस्टम वैरिएबल जोड़ते हैं, न कि एक यूजर वैरिएबल। मैं ग्रहण में इस समस्या में भाग गया और उपर्युक्त परिवर्तन करने के बाद मेरी मशीन को रीबूट करने की ज़रूरत नहीं थी ... मुझे केवल ग्रहण को पुनरारंभ करना पड़ा। धन्यवाद! –

0

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