2010-04-20 4 views
12

के साथ टेक्स्ट फ़ाइलों को कैसे शामिल करें हाय दोस्तों ने जावा प्रश्न को रोकी।निष्पादन योग्य जार

मेरे पास जावा प्रोजेक्ट है और मैं निष्पादन योग्य जार के साथ एक टेक्स्ट फ़ाइल शामिल करना चाहता हूं। अभी टेक्स्ट फ़ाइल डिफ़ॉल्ट पैकेज में है।

इनपुट फ़्लाइटफ़ाइल वर्तमान फ़ाइल = नया इनपुटफ्लैटफ़ाइल ("src/theFile.txt");

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

क्या कोई मुझे बता सकता है कि इस फ़ाइल को निष्पादन योग्य जार के साथ कैसे रखा जाए ताकि प्रोग्राम का उपयोग करने वाला कोई व्यक्ति सिर्फ एक आइकन पर क्लिक कर प्रोग्राम चला सके।

धन्यवाद!

+2

आप getResourceAsStream (http://java.sun.com/javase/7/docs/api/java/lang/ClassLoader.html#getResourceAsStream%28java.lang.String%29) का उपयोग कर सकते हैं। अन्य प्रश्नों के साथ http://stackoverflow.com/questions/574809/java-load-a-resource-contained-in-a-jar देखें। –

+0

धन्यवाद, मैं इसे देख लूंगा। – Jake

उत्तर

5

जार फ़ाइल में मूल निर्देशिका क्लासपाथ में है।

इनपुट फ़्लाइटफ़ाइल वर्तमान फ़ाइल का प्रयास करें = नया इनपुटफ्लैटफ़ाइल ("theFile.txt");

आप शायद एक आईडीई का उपयोग कर रहे हैं और इसमें एक src फ़ोल्डर है जो आईडीई पैकेज के आधार के लिए उपयोग करता है। जब आप आईडीई से जार फ़ाइल बनाते हैं तो यह src फ़ोल्डर को हटा देता है और रूट फ़ोल्डर में संकुल होते हैं।

अर्थात में ग्रहण src/com.blah.blah एक बार जार फ़ाइल संरचना बनाई गई है मुझे लगता है कि InputFlatFile ठीक से मूल्य पढ़ रही है com.blah.blah

बेशक

हो जाता है।

http://www.devdaily.com/blog/post/java/read-text-file-from-jar-file

+0

धन्यवाद, उस लिंक ने मुझे इसे समझने में मदद की! – Jake

+0

यह मेरे लिए काम करता है। मेरे पास जार फ़ाइल की 'रूट' में दो फाइलें हैं और मुझे सुरक्षाप्रॉप.सेटप्रॉपर्टी ("javax.net.ssl.trustStore", "CDAtruststore.jks") पर एक त्रुटि मिलती है; त्रुटि यह है कि 'सिस्टम निर्दिष्ट फ़ाइल नहीं ढूंढ सकता' लेकिन जार के अंदर शीर्ष स्तर पर फ़ाइलें हैं। घंटों के लिए मुझे रहस्यमय किया है। –

5

आप इसे निष्पादन योग्य जार में करना चाहते हैं? फिर फ़ाइल को पढ़ने के लिए

getClass().getResourceAsStream() 

का उपयोग करना चाहिए फ़ाइल को पढ़ने के लिए।

टेक्स्ट फ़ाइल को उस पैकेज में रखें जिसे आप एक्सेस करना चाहते हैं। क्लासलोडर इसे पायेगा।

याद रखें कि जार में फ़ाइल नाम केस संवेदनशील हैं।