मैं अपने जार के भीतर से एक संसाधन पढ़ना चाहूंगा जैसे:
File file;
file = new File(getClass().getResource("/file.txt").toURI());
BufferredReader reader = new BufferedReader(new FileReader(file));
//Read the file
और यह ग्रहण में चलने पर ठीक काम करता है, लेकिन अगर मैं इसे एक जार में निर्यात करता हूं तो यह रन अवैध है।
Exception in thread "Thread-2"
java.lang.IllegalArgumentException: URI is not hierarchical
और मैं वास्तव में नहीं जानता कि क्यों कुछ परीक्षण के साथ मैंने पाया कि अगर मैं बदलता हूं
file = new File(getClass().getResource("/file.txt").toURI());
सेवा
file = new File(getClass().getResource("/folder/file.txt").toURI());
तब यह विपरीत काम करता है (यह जार में काम करता है लेकिन ग्रहण नहीं करता है)।
मैं ग्रहण का उपयोग कर रहा हूं और मेरी फ़ाइल वाला फ़ोल्डर एक क्लास फ़ोल्डर में है।
getResourceAsStream
है कि अभी भी समस्या का एक सरल और अधिक पोर्टेबल समाधान है।