2012-01-22 9 views
7

जब मैं ग्रहण से चलने योग्य जेएआर के रूप में अपना कोड निर्यात करता हूं तो मैंने उन सभी फ़ाइलों को बटन छवियों और अन्य फ़ाइलों जैसे हथियारों को पकड़ने के लिए सेट किया है, भले ही वे वास्तव में जार में हैं । मैंने फाइलों के सामने getClass().getResource जोड़ा है लेकिन फिर जब मैं जार चलाने की कोशिश करता हूं तो कुछ भी नहीं होता है, कोई सुझाव?चलने योग्य जार छवियां/फ़ाइलें (संसाधन)

+2

कृपया हमें कुछ वास्तविक कोड दिखाएं, साथ ही पथों को दिखाते हुए अपनी जेएआर फ़ाइल की सामग्री की एक सूची दिखाएं। – ziesemer

उत्तर

21

ऐसा लगता है कि आप अपनी सामग्री को सही मायने में नहीं डाल रहे हैं। आदेश यह काम करने के लिए, निम्न चरणों का पालन:

  1. राइट-क्लिक ProjectProject Explorer Tree में।
  2. New -> Source Folder पर जाएं और फिर Name पर Source Folder पर प्रदान करें।
  3. अब अपनी सामग्री को Source Folder पर मैन्युअल रूप से जोड़ें, ताकि आप छवियां जोड़ना चाहें, जैसे मैन्युअल रूप से File System पर जाकर।
  4. इस New Folder को images के रूप में नाम दें और अपनी छवियों को इस Folder पर कॉपी करें।
  5. अब अपने ग्रहण आईडीई और Refresh पर अपने प्रोजेक्ट राइट क्लिक करके प्रोजेक्ट एक्सप्लोरर से Project पर जाएं, यहां आप रीफ्रेशिंग के बाद अब अपनी अतिरिक्त सामग्री देख पाएंगे।

अब किसी भी छवि का उपयोग करने के लिए, आप उपयोग करेंगे, उपयोग करेंगे।

getClass().getResource("/images/yourImageName.extension"); 

जो एक यूआरएल ऑब्जेक्ट वापस करेगा। first forward slash को याद रखें, इस मामले में, क्योंकि आपके स्रोत फ़ोल्डर के अंदर जो कुछ भी है, उसे सरल शर्तों में, इसकी सहायता से एक्सेस किया जाता है। अब जब आप अपनी प्रोजेक्ट चलाएंगे, तो इस स्रोत फ़ोल्डर की सामग्री स्वचालित रूप से बिन फ़ोल्डर में जोड़ दी जाएगी और जब आप रननेबल जार बनाएंगे, तो आपके स्रोत फ़ोल्डर के अंदर की सामग्री को एक्सेस किया जा सकता है।

1

पथ संसाधन के लिए सही होना चाहिए।

"foo.gif" जार की जड़ पर होने के लिए, आपको इसे "/foo.gif" का उपयोग करके संदर्भित करना होगा।

यदि प्रोग्राम पूरी तरह से साफ और पुनर्निर्माण के बाद सही तरीके से काम करता है, लेकिन एक जार के रूप में विफल रहता है, तो संभव है कि आपके पास जार में फ़ाइलें शामिल न हों।

0

फ़ोल्डरों को जार में उसी तरह से रखने का प्रयास करें जिससे आप उन्हें प्रोग्राम में प्राप्त कर सकें। उसी संसाधन में उसी स्थान पर रखें जहां आपके पास परियोजना में है। जार उनके संदर्भ में उसी तरह संदर्भित करेगा जैसा आपके कंपाइलर ने किया था।

0

आपको इस तरह की स्ट्रीम का उपयोग करके छवियों को प्राप्त करने की आवश्यकता है - this.class.getClassLoader()। GetResourceAsStream ("test.jpg") और सुनिश्चित करें कि छवियां जार में मौजूद हैं जिन्हें आप संदर्भित कर रहे हैं।

0

nIcE cOw के रूप में, आपको बस प्रोजेक्ट एक्सप्लोरर ट्री में एक स्रोत फ़ोल्डर बनाने की आवश्यकता है। उस फ़ोल्डर के अंदर की सभी फ़ाइलें रूट प्रोजेक्ट फ़ोल्डर में होंगी।

उन्हें करने के लिए आपको अपनी परियोजनाओं नाम के रूप में फ़ाइल नाम स्लेश लिखना चाहिए:

getClass().getResource("ProjectName/image.extension");

मुझे आशा है कि इस मदद करता है!

संबंधित मुद्दे