में आपके द्वारा लगाए गए कोड की लाइनों की संख्या पर एक सीमा है मेरे पास एक प्रोजेक्ट है जिस पर मैं काम कर रहा हूं और आज तक सभी ठीक से चल रहे थे। मेरे पास एक जावा क्लास दस्तावेज़ में कोड की करीब 6000 लाइनें हैं। यदि मैं कोड में एक और IF क्लॉज डालने का प्रयास करता हूं, तो कक्षा को कॉल करने पर प्रोग्राम अपवाद फेंकता है। सभी अतिरिक्त स्निपेट जिन्हें मैंने कक्षा में रखने की कोशिश की है, क्लास को विफल होने पर विफल होने का कारण बनता है। मैंने परीक्षण कोड जोड़ने की कोशिश की है जो मुझे पता है कि ठीक काम करता है, और वे सभी बल को बंद चेतावनी संवाद फेंक देते हैं। मेरा विश्वास करो कि अंतिम स्निपेट के साथ कुछ भी गलत नहीं है जिसे मैं कक्षा में रखने का प्रयास करता हूं। एक बार जब मैं अंतिम "अगर" स्निपेट निकालता हूं, तो कोई त्रुटि नहीं होती है। क्या किसी ने कभी यह देखा है? जब वर्ग कहा जाता है, तो अपरेटर में अपवाद फेंक दिया जाता है। मुझे बल बंद चेतावनी खिड़की मिलती है। यहां जावा फ़ाइल का आकार है: 172,503 बाइट अग्रिम धन्यवाद!क्या किसी ग्रहण जावा डौमेंट
उत्तर
मैं कुछ समय पहले उस समस्या में भाग गया और पाया कि इसमें 50k लाइनें और कोड में अधिक समस्या नहीं है जब तक विधि सीमा पार नहीं हो जाती तब तक कक्षा।
एक ही विधि में जो वास्तव में बाइटकोड आकार का कारण बनता है, उसके आधार पर मुझे कोड/विधि के 2-3k लाइनों के बीच सीमाएं मिलीं।
कहा:
माध्यम से वास्तव में एक निश्चित बिंदु पर ग्रहण दुर्घटनाओं जब अपने कुल कोड संकलित करने के लिए बहुत बड़ा हो जाता है - बस 1 जीबी या तो करने के लिए ग्रहण की स्मृति में वृद्धि। अब तक मेरी परियोजनाओं के लिए कुल 100k लाइनों के लिए पर्याप्त था ...
पेस्ट कर सकते हैं मैंने विधि को काट दिया और अन्य वर्गों को टुकड़ों को खोजने के लिए रीडायरेक्ट किया, यह एक आकर्षण की तरह काम करता है। विधि का आकार पार हो गया था। यह मुझे एक पूरा दिन खर्च किया। लेकिन किसी भी तरह के लाब के जीवन में एक दिन क्या है LOL – lastshadowrider
@lastshadowrider बस उत्सुक, क्रैश होने के लिए आपकी विधि कितनी लाइनें हैं? – blessenm
क्रैश होने से पहले लगभग 5, 9 80 लाइनें। मैंने सोचा कि मैं सिर्फ विधि में जोड़ना चाहता हूं, क्योंकि सब कुछ ठीक काम कर रहा था। और फिर उछाल। – lastshadowrider
मैंने पहले यह देखा है, ग्रहण स्वयं जावा से बाहर चला जाता है, इसलिए यदि आपके पास बहुत अधिक कोड है तो इसे बहुत रैम गहन है, ताकि उसे आवंटित किए जाने से अधिक की आवश्यकता हो।
कितना अधिक है? पूरा एपीके केवल 512 केबी है। – lastshadowrider
आप एक ही निम्नलिखित सेटिंग्स का उपयोग कर संशोधित कर सकते हैं:
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx512m
मैं इन बयानों को कहां रखूं? – lastshadowrider
ओपन eclipse.ini फ़ाइल खोलें और सेटिंग्स – Satya
मदद के लिए धन्यवाद सत्य – lastshadowrider
वहाँ कोड की पंक्तियों एक ग्रहण जावा doument में रख सकते हैं की संख्या पर कोई सीमा है।
ठीक नहीं है।
संकलित विधि में बाइटकोड की संख्या और इस तरह की अन्य चीजों पर सीमाएं हैं, लेकिन इन्हें जावा क्लासफ़ाइल प्रारूप (यानी जेवीएम विनिर्देश) द्वारा ग्रहण द्वारा नहीं लगाया जाता है।
यह भी संभव है कि ग्रहण को और अधिक स्मृति की आवश्यकता हो, हालांकि मुझे नहीं लगता कि एक if
कथन जोड़ना विश्वसनीय रूप से इसे ट्रिगर करेगा। (और यदि ऐसा हुआ, तो अपवाद आपको बताएगा कि आप स्मृति से बाहर थे ...)
- 1. जावा ग्रहण
- 2. ग्रहण: जावा क्लासपाथ
- 3. जावा परिप्रेक्ष्य ग्रहण
- 4. जावा - ग्रहण: बाहरी स्ट्रिंग्स?
- 5. ग्रहण कमांड लाइन जावा
- 6. ग्रहण: जावा क्लास टेम्पलेट्स
- 7. ग्रहण जावा एनोटेशन प्रोसेसिंग
- 8. जावा और ग्रहण
- 9. ग्रहण (संयुक्त जावा/सी ++)
- 10. जावा ग्रहण विंडोबिल्डर
- 11. प्रोग्रामिंग जावा 7 ग्रहण
- 12. ग्रहण: जावा प्रोजेक्ट
- 13. ग्रहण-सी ++ - डिबगिंग: किसी सरणी
- 14. ग्रहण जावा डीबगर
- 15. जावा ग्रहण प्रोजेक्ट
- 16. जावा और ग्रहण
- 17. ग्रहण स्थापित जावा
- 18. जावा ग्रहण आईडीई
- 19. ग्रहण जावा खोज
- 20. जावा ग्रहण @Override त्रुटि
- 21. ग्रहण 3.5 और जावा 7
- 22. जावा ग्रहण लाल विस्मयादिबोधक चिह्न
- 23. OnClickListener को किसी प्रकार (ग्रहण)
- 24. किसी ग्रहण प्रोजेक्ट में JSON आयात करना
- 25. ग्रहण में जावा आयात त्रुटि
- 26. ग्रहण: जावा और जेएसएफ/जेएसपी
- 27. मेरी सभी जावा परियोजनाएं ग्रहण
- 28. क्या ग्रहण
- 29. क्या ग्रहण
- 30. जावा ग्रहण पथ पथ विकल्प
* "... जब कक्षा" वर्ग पर कॉल की जाती है तो प्रोग्राम अपवाद फेंकता है। क्या अपवाद है? अपवाद कहां फेंक दिया जाता है? ग्रहण से? चल रहे कार्यक्रम में? "बुलाया" से आपका क्या मतलब है? –
आप 64kb (बाइटकोड के) विधि आकार सीमा में चल रहे हैं। http://stackoverflow.com/questions/107855/is-there-any-no-of-lines-code-limit-for-a-java-class और http://stackoverflow.com/questions/5689798/why- करता है-जावा-सीमा-आकार-का-एक-विधि-से-65535-बाइट और http://stackoverflow.com/questions/6570343/maximum-size-of-a-method-in-java –
मुझे चाहिए इंगित करें कि कोड की 6,000 लाइन वाली कक्षा ** ** वास्तव में ** खराब डिज़ाइन का संकेतक है। यदि आप अपने कोड को कुछ और उचित तरीके से दोबारा संशोधित/मॉड्यूलर करते हैं, तो समस्या दूर होनी चाहिए। –