2010-05-19 16 views
9

मेरे पास एक ग्रहण प्लगइन प्रोजेक्ट है, और यह मेरे ग्रहण कार्यक्षेत्र में अन्य परियोजनाओं पर निर्भर करता है। "जावा बिल्ड पथ" -> "प्रोजेक्ट्स" टैब के तहत प्रोजेक्ट निर्भरताओं को जोड़ने के बाद, और "ऑर्डर एंड एक्सपोर्ट" में प्रोजेक्ट का चयन करने के बाद मुझे java.lang.N.NoClassDefFoundError मिलता है।अन्य परियोजना निर्भरताओं के साथ ग्रहण प्लगइन परियोजना

मुझे लगता है कि अन्य परियोजनाओं को प्लगइन में ठीक तरह से शामिल नहीं किया गया है। क्या कोई जानता है कि इसे कैसे ठीक करें?

धन्यवाद, जेम्स

उत्तर

12

परियोजना में एक ग्रहण प्लग एक नियमित रूप से जावा परियोजना की तुलना में अलग निर्भरता प्रबंधन करता है।

मुझे लगता है कि आप .class फ़ाइलों के साथ पैकेज जोड़ रहे हैं।

अपने ग्रहण प्लग-इन प्रोजेक्ट में लाइब्रेरी फ़ोल्डर को परिभाषित करें। पुस्तकालय फ़ोल्डर में किसी भी बाहरी वर्ग और/या जार की प्रतिलिपि बनाएँ।

मेटा-आईएनएफ निर्देशिका के तहत MANIFEST.MF फ़ाइल खोलें। आपको नीचे दिए गए 8 टैब के साथ एक स्वरूपित संपादक दिखाई देगा।

रनटाइम टैब पर क्लिक करें। क्लासपाथ में लाइब्रेरी फ़ोल्डर में बाहरी कक्षाएं और/या जार जोड़ें। यह परियोजना के जावा बिल्ड पथ में इन बाहरी कक्षाओं और जारों को भी जोड़ देगा।

निर्भरता टैब पर क्लिक करें, और आयातित पैकेज संवाद में अन्य जावा परियोजनाओं को जोड़ें। आपको "गैर-निर्यात किए गए पैकेज दिखाएं" लेबल वाले बॉक्स को चेक करना होगा। यदि आपकी अन्य जावा परियोजनाएं ग्रहण प्लग इन हैं, तो उन्हें आवश्यक प्लग-इन के तहत जोड़ें।

+0

मैंने "आयातित पैकेज" अनुभाग में संकुल जोड़ने का प्रयास किया, लेकिन मुझे "पैकेज चयन" संवाद में मेरे अन्य प्रोजेक्ट में संकुल नहीं मिल रहे हैं। क्या इससे पहले मुझे कुछ करने की ज़रूरत है? –

+0

क्षमा करें, यह थोड़ी देर हो गया है क्योंकि मैंने प्रोजेक्ट में एक नया ग्रहण प्लग बनाया है। मैंने अपने उत्तर को अधिक निर्देशों के साथ अपडेट किया है। –

+0

गिल्बर्ट: क्या आप कृपया अपने निर्देशों को थोड़ा सा स्पष्ट कर सकते हैं? मैंने प्रोजेक्ट -> जावा बिल्ड पथ -> लाइब्रेरीज़ -> क्लास फ़ोल्डर जोड़ें और फिर प्लगइन के निर्भरता टैब पर संकुल आयात किए। अब मैं Manifest.MF फ़ाइल में आयात किए गए संकुल के लिए "कोई उपलब्ध बंडल निर्यात पैकेज 'x'" त्रुटियां प्राप्त कर रहा हूं। क्या मैं कुछ भुल गया? –

0

यदि आप निर्भर परियोजना को अपनी प्लगइन प्रोजेक्ट में कॉपी करने की स्थिति में नहीं हैं और आप निश्चित ग्रहण में निर्भर परियोजना की उपस्थिति के बारे में निश्चित हैं जहां प्लगइन स्थापित किया जाना है, तो आप या तो उपयोग कर सकते हैं Runtime.exec() उस क्लास को चलाने के लिए जावा क्लास चलाने के लिए या ProcessBuilder कक्षा चलाने के लिए।

इस तरह

:

// To compile 
Process p = Runtime.getRuntime().exec("javac yourclass.java"); 
// To execute 
Process p2 = Runtime.getRuntime().exec("java yourclass"); 

यह सबसे खराब स्थिति में माना जा सकता है। मेरे पास ऐसा अनुभव था और इसलिए सोचा कि कुछ इसे उपयोगी पा सकते हैं।

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