2013-08-06 10 views
10

मैं जावा में एक रननेबल जार बनाना चाहता हूं। मुझे जार में कुछ फाइलों को शामिल करने की आवश्यकता है ताकि जब मैं जार निष्पादित करता हूं तो फाइलें जावा क्लास से स्वचालित रूप से पढ़ी जाती हैं। इसलिए मैंने परियोजना में एक फ़ोल्डर बनाया और परियोजना से इन फ़ाइलों को संदर्भित किया। मैंने कुछ ट्यूटोरियल के बाद जार फ़ाइल बनाई लेकिन मैं इन बाहरी फ़ाइलों को मेरी जार फ़ाइल में शामिल नहीं कर सका। कृपया मुझे बाहरी फाइलों के साथ चलने योग्य जार बनाने के बारे में बताएं।बाहरी फाइलों के साथ रननेबल जार बनाना

मेरे फ़ाइल struture

Test 
| 
| 
-------src 
|  | 
|  default package 
|      | 
|      | 
|      test1.java 
| 
-------FileFOlder 
|    | 
|    | 
|    abc.txt 

मैं test1.java कक्षा में abc.txt तक पहुँचने कर रहा हूँ। मेरे कोड है,

public class test1 { 


public static void main(String[] args) throws IOException { 


    char [] read = new char[20]; 
    String path = new File(".").getCanonicalPath(); 
    path = path+"\\Newfolder\\abc.txt"; 
    System.out.println(path); 
    File nF = new File(path); 
    FileReader fR = new FileReader(nF); 
    fR.read(read); 
    for(char c : read){ 
     System.out.print(c); 
    } 
    fR.close(); 
    System.out.println(" Hi..This is test program "); 
} 

} 

जब मैं ग्रहण निर्यात विकल्प का उपयोग करने के लिए निष्पादन योग्य जार बनाने के लिए, मैं जार के अंदर FileFolder निर्देशिका को देखने में असमर्थ हूँ। कृपया मुझे इसके बारे में कुछ जानकारी दें।

रखें कि वापस अपने जार फ़ाइल में फ़ाइल:

+0

परिभाषित करें कि 'मेरी बाहरी फाइलों में इन बाहरी फ़ाइलों को शामिल करने में सक्षम नहीं है'। क्यों नहीं? – EJP

उत्तर

9

यहाँ तुम क्या बजाय करना चाहिए। और FileReader के बजाय इसे पढ़ने के लिए class.getResourceAsStream() का उपयोग करें। यहां यह कैसे बताया जाए: How to really read text file from classpath in Java

+1

आपकी प्रतिक्रिया के लिए धन्यवाद। क्या आप कृपया मुझे बता सकते हैं कि मैं अपनी टेक्स्ट फ़ाइलों को जार फ़ाइल के अंदर कैसे रख सकता हूं। – Anup

+0

@Anup आपने क्या प्रयास किया है? अब आप अपनी जार फ़ाइल कैसे बना रहे हैं? –

+1

मैं ग्रहण के माध्यम से जार फ़ाइलों का निर्माण कर रहा हूं। मैं निर्यात विकल्प का चयन करता हूं और फिर रनने योग्य जार का चयन करता हूं और अंत में कक्षा का चयन करता हूं। मुझे अन्य फ़ोल्डर का चयन करने के लिए कोई विकल्प नहीं मिला। – Anup

11

समस्या हल हो गई है!

1) सही अपनी परियोजना फ़ोल्डर क्लिक करें और एक नया फ़ोल्डर बनाने:

यहाँ

कैसे है।

2) उन सभी फ़ाइलों को ले जाएं जिन्हें आप उस फ़ोल्डर में जार में पैक करना चाहते हैं।

3) project -> properties -> Build Path -> Source -> Add Folder पर क्लिक करें और उस फ़ोल्डर का चयन करें जिसे आपने अभी बनाया है।

4) अपना जार बनाएं!

के बाद से आप पहले से ही abc.txt अंदर के साथ अपने फ़ोल्डर बनाया है, तो आप चरण 1 को छोड़ सकते हैं और 2

संपादित करें: एक ही रास्ता है कि आप सुनिश्चित करें कि आपके JAR इन फ़ाइलें हैं 7zip का उपयोग करने के लिए है बना सकते हैं।

+0

बहुत बहुत धन्यवाद। मैंने आपके द्वारा निर्दिष्ट जार फ़ाइल बनाई है और मुझे जार फ़ाइल में टेक्स्ट फ़ाइल मिली है।लेकिन अब मैं अपने कोड से उस फ़ाइल तक पहुंचने का कोई तरीका नहीं ढूंढ पा रहा हूं। तो जब मैं अपनी जार फ़ाइल चलाता हूं तो मुझे FileNotFound अपवाद मिल रहा है। मैं उस फ़ाइल का उपयोग करने और सामग्री को पढ़ने में असमर्थ हूं। अगर आप इसके बारे में कुछ भी जानते हैं तो कृपया मुझे बताएं। – Anup

+0

मैंने इसे कभी नहीं किया है, लेकिन थोड़ी सी ब्राउज़िंग के बाद मुझे यह पता चला [http://stackoverflow.com/questions/2593154/get-a-resource-using-getresource) stackoverflow प्रश्न। ऐसा लगता है कि आप अपने क्लासपाथ पर फ़ाइलों तक पहुंचने के लिए उपयोगकर्ता 'क्लासलोडर' कर सकते हैं, जिसमें आपके abc.txt – scottyseus

+0

शामिल होंगे, मुझे लगता है कि मुझे ['answer'] (http://stackoverflow.com/questions/1464291/ कैसे-से-वास्तव में पढ़ने-पाठ-फ़ाइल-से-क्लासपाथ-इन-जावा) – scottyseus

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