के रूप में यह पिछले जवाब में लिखा गया था आपके पास दो विकल्प है कि आप अपने बंडलों में अतिरिक्त पुस्तकालयों का उपयोग करना चाहते हैं:
- एक बंडल जिसमें यह उपयोग किया जाएगा में पुस्तकालय जार embedding,
- एक बनाने लाइब्रेरी से वैध ओएसजीआई बंडल।
पहले दृष्टिकोण सरल क्योंकि आप केवल (एक रूट निर्देशिका में जैसे) एक बंडल के लिए पुस्तकालय जार (और उसके सभी निर्भरता) की प्रतिलिपि और फिर MANIFEST.MF
में Bundle-Classpath
तत्व में शामिल करें (here देखें) करने की जरूरत है । हालांकि, ऐसा करने के दौरान आपको याद रखना चाहिए कि यह अतिरिक्त लाइब्रेरी केवल उस बंडल में दिखाई देगी जिसमें इसे एम्बेड किया गया है (इसलिए लाइब्रेरी पुन: उपयोग सीमित है)। MANIFEST.MF
में अन्य बंडलों के लिए दृश्यमान बनाने के लिए आप हमेशा इस लाइब्रेरी से संकुल Export-package
तत्व में जोड़ सकते हैं लेकिन यह सुरुचिपूर्ण समाधान से दूर है (हालांकि यह काम करेगा)।
इसे अन्य बंडलों आप दूसरा दृष्टिकोण, अर्थात का उपयोग करना चाहिए पुस्तकालय से एक OSGi बंडल बनाने के लिए दृश्यमान बनाने के लिए में (वहाँ उपकरण है जो आपको लगता है कि ऐसा करने में मदद कर सकते हैं, यह भी ग्रहण कर रहे हैं)। हालांकि, अधिक जटिल पुस्तकालयों के लिए यह दृष्टिकोण कठिन हो सकता है (ओएसजीआई में निर्भरता और विशिष्ट वर्ग लोडिंग दृष्टिकोण की वजह से)।
तो यदि आप केवल एक बंडल में लाइब्रेरी का उपयोग करना चाहते हैं तो मैं पहले दृष्टिकोण का उपयोग करने का सुझाव देता हूं (इसे कार्यान्वित करना आसान है)। यदि आप इस पुस्तकालय का उपयोग अपने आवेदन में कई बंडलों में करना चाहते हैं तो आपको दूसरे दृष्टिकोण पर विचार करना चाहिए।