मैं एक ऐसे अनुप्रयोग का विकास कर रहा हूं जो एक लाइब्रेरी का उपयोग करता है जो कॉन्फ़िगरेशन फ़ाइल को लोड करता है:ResourceAsStream() को जार फ़ाइल के बाहर फाइलें मिल सकती हैं?
InputStream in = getClass().getResourceAsStream(resource);
मेरा अनुप्रयोग तब .jar
फ़ाइल में पैक किया गया है। यदि resource
.jar
फ़ाइल के अंदर है, तो मैं "/relative/path/to/resource/resource"
के रूप में पथ निर्दिष्ट कर सकता हूं।
मैं जानना चाहता हूं कि संसाधन को ढूंढना संभव है यदि यह .jar
फ़ाइल के बाहर है, और इस मामले में, मैं पथ कैसे निर्दिष्ट करूं।
(मान लें कि मेरे एप्लिकेशन का जार app/
में है और संसाधन app/config
में है)।
प्रोग्राम 3 rd पार्टी लाइब्रेरी का उपयोग करता है। लाइब्रेरी संसाधन को कॉन्फ़िगरेशन फ़ाइल के रूप में उपयोग करती है।
मैं भी जार फ़ाइल को अनजिप/ज़िप करने के बिना कॉन्फ़िगरेशन फ़ाइल को ट्विक करना चाहता हूं।
पुस्तकालय @AndrewThompson के लिए एक पूर्ण पथ निर्दिष्ट JVM करने के लिए एक
-Dconfig.location
पारित कर सकते हैं एक विन्यास फाइल के रूप में संसाधन का उपयोग करता है (यह एक रोमांचक पार्टी लाइब्रेरी है)। मैं हमेशा जार फ़ाइल को अनजिप/ज़िप करने के बिना कॉन्फ़िगरेशन फ़ाइल को ट्विक करना चाहता हूं। असल में मैं यह पूछना भूल गया कि क्या मैं इसे एक और तरीके से पूरा कर सकता हूं :) – kunigamiवह जानकारी प्रासंगिक है, इसलिए मैंने इसे प्रश्न में संपादित किया है। क्या तृतीय पक्ष एपीआई को निर्देश दिया जा सकता है (उदा। आपके ऐप द्वारा) संसाधन के लिए कहां देखना है? असल में जो मैं अग्रणी हूं, वह सुझाव दे रहा है कि इसे ऐप से न डालें। बिलकुल, लेकिन स्थिर और पुनरुत्पादित पथ में - जैसे 'user.home' की उप-निर्देशिका। –
मैंने केवल उस बिट को देखा जो 'एप्लेट' कहता है। क्या यह वास्तव में एक एप्लेट है? यह चीजों को और जटिल बनाता है। –