2010-04-23 9 views
6

मैं सिर्फ जेएनआई सीखना शुरू कर रहा हूं। मैं एक साधारण उदाहरण का पालन कर रहा हूं, और मैंने एक जावा ऐप बनाया है जो मूल पुस्तकालय में हैलो वर्ल्ड विधि को कॉल करता है। मैं Win32 और Linux x86 को लक्षित करना चाहता हूं।ग्रहण का उपयोग कर .JAR फ़ाइल में प्लेटफॉर्म-विशिष्ट मूल पुस्तकालयों को मैं कैसे शामिल कर सकता हूं?

मेरी लाइब्रेरी एक डीएलएल में रहती है, और मैं लोड लाइब्रेरी का उपयोग करके इसे ठीक कह सकता हूं जब डीएलएल को मेरी ग्रहण परियोजना की जड़ में जोड़ा जाता है।
हालांकि, मैं यह नहीं समझ सकता कि ग्रहण के लिए डीएलएल और एसओ फ़ाइल शामिल करने के लिए ग्रहण कैसे प्राप्त किया जा सकता है।

तो मेरा प्रश्न मूल रूप से है; ग्रहण में एक परियोजना बनाने के बारे में आप कैसे जाएंगे और उसी मूल पुस्तकालय के कई संस्करणों को शामिल करेंगे?

धन्यवाद,
मार्टिन

+0

प्रत्येक ग्रहण संवाद में, ऐसा लगता है कि मैं मूल पुस्तकालय के लिए एक जेएआर फ़ाइल को इंगित करना चाहता हूं। मैंने अपने libs को एक जार में संपीड़ित करने और इसका संदर्भ देने की कोशिश की है, लेकिन कोई सिगार नहीं है। ऐसी जार फ़ाइल क्या है? –

उत्तर

4

रनने योग्य जेएआरएस के लिए, आपको अस्थायी निर्देशिका (शायद एक स्थैतिक {} ब्लॉक में) निकालने की आवश्यकता है और फिर उस निर्देशिका से DLL लोड करें (उसी ब्लॉक में System.loadLibrary() का उपयोग करके)। ऐसा करने के लिए, आपको क्लासलोडर को उप-वर्गीकृत करने और उस निर्देशिका में पुस्तकालयों को खोजने की अनुमति देने के लिए findLibrary() विधि को ओवरराइड करने की आवश्यकता है। आप विशेष मंच पुस्तकालयों को लोड करने के लिए यहां जो भी तर्क चाहते हैं, वह कर सकते हैं। ईमानदार होने के लिए, विभिन्न प्लेटफॉर्म पर पुस्तकालयों के लिए नामकरण वैसे भी होना चाहिए - मेरा मानना ​​है कि आप लोड करते समय 'lib' भाग को छोड़ देते हैं, और एक्सटेंशन। यह इसका सारांश है। अन्य पोस्टर के रूप में वन-जेएआर का उपयोग करना संभवतः आसान है :)

+2

धन्यवाद - मैंने इसे पुस्तकालय समेत संसाधन के रूप में और इसे रनटाइम पर निकालने के द्वारा काम किया है। इसे तब System.load() से लोड किया जा सकता है। इसे सही उत्तर के रूप में चुना क्योंकि यह अधिक विस्तृत है - हालांकि, एक-जार देखेंगे। –

3

आप One-JAR परियोजना की जाँच कर सकते हैं। यह आपको अपने आवेदन और इसकी निर्भरताओं (मूल पुस्तकालयों सहित) को एक जार फ़ाइल में पैकेज करने देता है।

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

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