Hallo,getResourceAsStream नए पर्यावरण के तहत विफल रहता है?
मैं निम्न कोड पंक्ति है:
InputStream passoloExportFileInputStream = getClass().getClassLoader().getResourceAsStream("/com/thinkplexx/lang/de/general.xml");
और मैं com/thinkplexx/लैंग/डी/general.xml साथ कि जार classpath में है।
यह "पिछले पर्यावरण" के तहत काम करता है, जो maven2 build है।
अब, मैं maven3 का मूल्यांकन करता हूं और यह काम नहीं करता है! मैं जानता हूँ कि, कि अगर मैं कोड बदल होने के लिए:
InputStream passoloExportFileInputStream = getClass().getClassLoader().getResourceAsStream("com/thinkplexx/lang/de/general.xml");
यह काम करता है महान (मैं सिर्फ संसाधन पथ से पहले स्लैश हटा दिए गए)।
बीटीडब्ल्यू, मैं लिनक्स का उपयोग करता हूं। पथ में पहला स्लैश सामान्य रूप से "मूल निर्देशिका से" होता है, इसलिए यदि यह तर्क जावा संसाधन लोडिंग के लिए भी अच्छा है, तो पहले उदाहरण को कभी काम नहीं करना चाहिए था ??
प्रश्न: कुछ पहले कोड नमूने के साथ गलत है, यानी साथ /com/ और है नहीं com/? क्या यह सिर्फ खराब कोड है या इसका मतलब कुछ अलग है?
धन्यवाद!
डेवन्स का जवाब मेरे लिए काम करता है। इसके अलावा, मुझे में मिला http://download.oracle.com/docs/cd/E17476_01/javase/1.5.0/docs/guide/lang/resources.html कि: " क्लासलोडर में विधियां दिए गए स्ट्रिंग का उपयोग करती हैं किसी भी पूर्ण/सापेक्ष परिवर्तन को लागू किए बिना संसाधन का नाम (कक्षा में विधियों को देखें)। नाम में अग्रणी नहीं होना चाहिए "/" " –