पर शून्य वापस लौटाता है हाल ही में मैं getResourceAsStream विधि के बहुत अजीब व्यवहार में आया था।विधि getResourceAsStream ubuntu
मेरे पास एक ऐसा एप्लिकेशन है जिसे मैंने विंडोज़ पर विकसित किया है। यह ऐप ओएसजीआई ढांचे के आधार पर एक डेस्कटॉप एप्लीकेशन है। मैंने एक बंडल बनाया, आवश्यक पैकेज सेट अप किए और उन पैकेजों में कुछ डेटा फ़ाइलों को जोड़ा ताकि वे जार फ़ाइल में निहित हों।
मुझे लगता है कि का उपयोग कर डेटा लोड:
this.getClass().getResourceAsStream("pl/com/myapp/resource.dat");
यह दोनों ग्रहण करने में बहुत काम किया है और जब मैं अपने आवेदन तैनात और आईडीई के बाहर प्रणाली पर चला।
तब मैंने विकास को उबंटू 12.04 में स्थानांतरित कर दिया। मेरे आश्चर्य की बात है कि ऊपर वर्णित विधि हमेशा शून्य लौटती है। डेटा वह जगह है जहां यह होना चाहिए। सभी सेटिंग्स ठीक दिखती हैं। किसी भी विन्यास फाइलों में कोई पूर्ण पथ नहीं।
मैंने कई अलग-अलग चीजों की कोशिश की। मैं करने के लिए पथ बदल दिया:
this.getClass().getResourceAsStream("/pl/com/myapp/resource.dat");
मैं पैकेज जड़ होते हैं लेकिन एक रास्ता है कि वर्ग स्थान के सापेक्ष है सम्मिलित करने के लिए (: pl.com.myapp.MyClass मान की सुविधा देता है कि मेरी कक्षा है): नहीं की कोशिश की
this.getClass().getResourceAsStream("resource.dat");
मैं भी करने की कोशिश की:
this.getClass().getResourceAsStream("./resource.dat");
लेकिन कुछ भी नहीं :(
काम किया लेकिन जब मैं एक बनाने सरल जावा एप्लिकेशन सब कुछ सुचारू रूप से काम करता है और विधि उचित स्ट्रीम देता है।
क्या कोई ऐसी समस्याओं के पार आया?
मैं उबंटू 12.04 पर ग्रहण-जूनो का उपयोग करता हूं।
नहीं, यह संभव नहीं है। डेटा लोड करने वाली विधि किसी भी अन्य वर्ग द्वारा ओवरराइड की जाती है। कक्षा स्वयं किसी अन्य के लिए एक सुपरक्लास नहीं है। –
ठीक है लेकिन क्या आप कम से कम 'MyClass.class.getResourceAsStream()' पैटर्न को यह सत्यापित करने के लिए प्रयास कर सकते हैं कि यह वही व्यवहार है? –
ठीक है मैंने इसे चेक किया है और यह या तो मदद नहीं करता है। वही परिणाम - शून्य वापस आ रहा है। –