के रूप में एक JAR संसाधन खोलना मेरे पास एक प्रोजेक्ट है जहां मैं किसी अन्य प्रोजेक्ट से JAR में किसी संसाधन को एक्सेस करना चाहता हूं। यह मेरे क्लासपाथ पर नहीं है, इसलिए क्लासलोडर एक विकल्प नहीं है। मैंने कोशिश की:फ़ाइलस्ट्रीम
new FileInputStream("C:\\mydir\\my.jar!\\myresource.txt");
और एक फ़ाइलNotFoundException प्राप्त हुआ।
जारइनपूटस्ट्रीम एक संभावना हो सकती है, लेकिन मैं इनपुट फ़ाइल नाम की लचीलापन एक जार संसाधन या सिस्टम पर एक फ़ाइल (उपयोगकर्ता निर्णय लेता हूं) चाहता हूं। क्या कोई कक्षा है जो ऐसा कर सकती है या क्या मुझे खुद को बनाना है?
यह सुनिश्चित नहीं करता कि यह मदद करता है, लेकिन जार फ़ाइलें मूल रूप से ज़िप फ़ाइलें हैं, इसलिए यदि आप किसी ज़िप फ़ाइल से कुछ पढ़ सकते हैं तो आप इसे एक जार से पढ़ सकते हैं - शायद यह आपकी खोज का विस्तार करने में मदद करता है। –
@ मार्क - जेएआर फाइल अनिवार्य रूप से ज़िप फाइलें हैं, लेकिन केवल इस पल के लिए। अफवाह यह है कि जावा प्रारूप में जेएआर प्रारूप बदल रहा है। उम्मीद है कि उपयुक्त अमूर्त कक्षाओं का उपयोग भविष्य में सबूत होगा जो किसी भी जेएआर मैनिपुलेशन कोड ('java.util.jar' पैकेज देखें)। – McDowell