जब मैं अपनी परियोजना को जेडीके 7 या जेडीके 6 के साथ एक्लिप्स में संकलित और चलाता हूं तो सब ठीक है। हालांकि करने के बाद उस चींटी का उपयोग कर और फिर प्रणाली JDK7 का उपयोग कर इसे चलाने के लिए करने की कोशिश की निर्माण, मैं त्रुटि मिलती है:जावा 7 - असंगत स्टैकमैप फ्रेम - समाधान को समझने में सहायता की आवश्यकता क्यों है
असंगत stackmap विधि myClass.myMethod में शाखा लक्ष्य 25 पर फ्रेम() [[Ljava/लैंग/वस्तु; 14
मैं हर जगह देखा है ऑफसेट और Stackoverflow पर यहाँ अच्छे सवाल की एक जोड़ी पाया:
- Java 7 JVM VerifyError in Eclipse
- Akka Actors fails, VerifyError: Inconsistent stackmap frames at branch target
दोनों मूल रूप से एक के रूप में -XX:-UseSplitVerifier
जोड़ने के लिए सुझाव देते हैं जेवीएम विकल्प जिसने इस मुद्दे को हल किया। मैं अभी भी पूरी तरह से समझ में नहीं आता क्यों लेकिन स्पष्ट रूप से this bug report मदद करने के लिए लगता है। दुर्भाग्यवश मुझे अभी भी यह नहीं मिला है ...
मैंने किसी एक प्रश्न पर ध्यान दिया कि कोई पहलू उन्मुख प्रोग्रामिंग का उपयोग कर रहा था, जिसने मुझे लगता है कि मैं Guice (Google की DI ढांचा) का उपयोग कर रहा हूं जो समस्या का कारण बन सकता है लेकिन मैं नहीं देख सकता कि कैसे। ऐसा लगता है कि जेडीके 7 का समर्थन करना है।
मैं प्रोगुआर्ड का भी उपयोग कर रहा हूं लेकिन यह भी जेडीके 7 के साथ काम करने का अनुमान है।
वैसे भी इस बिंदु पर मुझे नहीं पता कि यह कामकाज मूल रूप से पिछले जेडीके (इस मामले में जेडीके 6) संस्करण में वापस आने के अलावा क्यों काम कर रहा है, जब कोड का कुछ हिस्सा बाइट कोड (जो कि यही कारण है कि मुझे लगता है कि यह DI से संबंधित है) कोड। लेकिन मैं अभी भी उचित लिंक बनाने में सक्षम नहीं हूं। और मैं भी रास्ता बंद कर सकता था !!
अगर कोई यह बता सकता है कि क्या हो रहा है या ऐसा क्यों होता है तो मैं बेहद सराहना करता हूं। इसके अलावा मुझे वास्तव में कामकाज का उपयोग करने से नफरत है क्योंकि यह एक दीर्घकालिक समाधान पर विचार नहीं करता है।
* "ऐसा लगता है कि जेडीके 7 का समर्थन करना है।" * - शायद इसका समर्थन छोटी है। क्या आपने गुइस इश्यू ट्रैकर/समूह/सूचियों की खोज की है? –
अपने अंक ट्रैकर –
में बग के मामले में कुछ भी नहीं ढूंढ पाए हैं मेरा अनुमान यह होगा कि जावा 7 में उन्होंने अधिक आक्रामक बाइट कोड को सत्यापित करने के लिए जोड़ा है और बाइट कोड के साथ जो भी गुइस कर रहा है, वह निर्भरता इंजेक्शन करता है उन चेक के साथ काम न करें –