मैं अब काफी कुछ समय के लिए इस पर मेरे सिर तोड़ने किया गया है और नहीं कर सकते इस समस्या के लिए एक समाधान खोजने के:फ़ाइल और bundleresource: // URL
मैं के रूप में पैक एक कस्टम पुस्तकालय का उपयोग करता है एक ग्रहण आरसीपी अनुप्रयोग है जार। प्लगइन से, मैं जार के भीतर एक विधि बुला रहा हूँ। इस विधि के भीतर, मैं this.class.getResource(relPath)
का उपयोग कर संसाधन प्राप्त कर रहा हूं, जबकि relPath
मुझे आवश्यक फ़ाइल के लिए एक हार्डकोडेड सापेक्ष पथ है। यह मुझे URL
देता है जिसका उपयोग मैं File
बनाने के लिए कर सकता हूं।
अब, यह पूरी तरह से काम करता है अगर मैं इस विधि को प्लगइन से नहीं बुला रहा हूं, लेकिन एक साधारण जावा-प्रोग्राम से। अंतर: ग्रहण आरसीपी का क्लासलोडर प्रोटोकॉल bundleresource://
का URL
देता है जो File
द्वारा समर्थित नहीं है, जबकि एक साधारण जावा-प्रोग्राम चलाते समय, file://
-URL वापस लौटाया जाता है जो File
बनाने के लिए पूरी तरह से ठीक है।
मुझे ग्रहण एसडीके (जो बंडलरसोर्स-यूआरएल फाइल-यूआरएल में हल करता है) के FileLocator
-class के बारे में पता है, लेकिन मैं पुस्तकालय के भीतर इसका उपयोग नहीं कर सकता क्योंकि मैं इसे ग्रहण आरसीपी मंच से जोड़ना नहीं चाहता - यह गैर-ग्रहण-आरसीपी स्रोतों से भी इस lib का उपयोग करना संभव होना चाहिए।
कोई भी इस विचार को किसी रिश्तेदार पथ से कैसे लोड कर सकता है इस तरह से कोई विचार है कि जब दोनों ग्रहण ग्रहण आरसीपी-प्लगइन या किसी अन्य क्लाइंट से विधि को कॉल किया जाता है तो दोनों काम करेंगे?
मुझे फ़ाइलों के भीतर खोजने के लिए इस सापेक्ष पथ की निर्देशिका पर File
बनाने की आवश्यकता है। मैं पूरी तरह से इस पर अटक कर रहा हूँ ...
अद्यतन: यदि कोई संभावना File#list() का उपयोग कर निर्देशिका सामग्री यह पहले से ही मेरी मदद करेंगे पाने के लिए अन्य की तुलना में .. है
बहुत सराहना किसी भी संकेत,
आप प्रासंगिक कोड की सूची कर सकते हैं? –
@TonnyMadsen एचएम, मैं मूल रूप से यह बहुत सरल हो सकता था: मैं इसका उपयोग कर रहा हूं .getClass()। GetResource (relPath) को मेरे क्लासपाथ में पथ लोड करने के लिए। यह मुझे एक बंडलरसोर्स देता है: // URL जब ग्रहण आरसीपी के तहत किया जाता है और एक फ़ाइल: // यूआरएल अन्यथा। फ़ाइल-ऑब्जेक्ट बनाने की कोशिश कर रहा है bundleresource: // URL के साथ विफल रहता है क्योंकि फ़ाइल इस प्रोटोकॉल का समर्थन नहीं करती है। चूंकि मुझे "relPath" की निर्देशिका सामग्री को पढ़ने की आवश्यकता है, इसलिए मुझे फ़ाइल का उपयोग करने के लिए मजबूर किया गया है ... – quaylar
आप URL को फ़ाइल में कैसे परिवर्तित करते हैं? –