2012-01-22 158 views
1

我已经构建了一个Java应用程序,它从位于src文件夹中的txt文件中读取数据。我在程序中指定的路径是/src/data.txt,并且在我从netbeans运行它时起作用。但是,当我试图打开jar文件时,没有打开任何东西。所以我尝试从命令行使用javac,这给了我无法找到data.txt的错误。如何添加src文件到jar?

如何确保数据文件包含在jar中,因此它可以作为独立工作? 谢谢。编辑1:这是我用来加载文件的代码片段。和所使用的路径是上述/scr/data.txt

public String [] openFile() throws IOException { 
     FileReader fr = new FileReader(this.path); 
     BufferedReader br = new BufferedReader(fr); 
     String []text = new String[this.numberoflines]; 
     for(int i=0;i<this.numberoflines;++i) 
     { 
      text[i]=br.readLine(); 
     } 
     br.close(); 
     return text; 
} 

EDIT2:那么这里是TVF输出:

 Error: Could not find or load main class jar

C:\Users\Abhishek>jar -tvf Scrades.jar 0 Sun Jan 22 18:47:08 IST 2012 META-INF/ 199 Sun Jan 22 18:47:06 IST 2012 META-INF/MANIFEST.MF 2562 Sun Jan 22 18:47:08 IST 2012 CombinationGenerator.class 684 Sun Jan 22 18:47:08 IST 2012 Gameplay$1.class 684 Sun Jan 22 18:47:08 IST 2012 Gameplay$2.class 684 Sun Jan 22 18:47:08 IST 2012 Gameplay$3.class 684 Sun Jan 22 18:47:08 IST 2012 Gameplay$4.class 684 Sun Jan 22 18:47:08 IST 2012 Gameplay$5.class 969 Sun Jan 22 18:47:08 IST 2012 Gameplay$6.class 18279 Sun Jan 22 18:47:08 IST 2012 Gameplay.class 2275 Sun Jan 22 18:47:08 IST 2012 PermutationGenerator.class 1252444 Sun Jan 22 18:47:08 IST 2012 eng_final1.txt 3771960 Sun Jan 22 18:47:08 IST 2012 english_huge.txt 815532 Sun Jan 22 18:47:08 IST 2012 english_long.txt 16104 Sun Jan 22 18:47:08 IST 2012 english_short.txt 1506 Sun Jan 22 18:47:08 IST 2012 readFile.class
+0

复制/粘贴'jar -tvf the.jar'的输出。 –

+0

如何在代码中加载文件?你使用类路径吗?网址?完整路径 ?向我们展示一些代码 –

+0

向我们显示您的代码。并且理解文件IO不是访问jar文件的正确工具。还要明白你的应用的用户在他们的机器上没有任何src文件夹。 –

回答

0

您可以手动检查,放置和取出文件中的jar存档使用rar提取器如winrar:然后访问使用Class.getResourceAsStream(String);

InputStream is = getClass().getResourceAsStream("/src/data.txt"); 
    InputStreamReader isr = new InputStreamReader(is); 
    BufferedReader br = new BufferedReader(isr); 
    String line; 
    while ((line = br.readLine()) != null){ 
     //Perform operations 
    } 
    br.close(); 
    isr.close(); 
    is.close(); 
+0

数据文件存在于jar文件中(我使用winrar进行了检查)。你能否详细说明这个命令是如何工作的? – user1163203

+0

谷歌是你的朋友,javadoc在那里被阅读。请参阅http://stackoverflow.com/questions/7736149/how-to-specify-path-for-properties-file/7736239#7736239或http://stackoverflow.com/questions/7152749/access-a-file-in -package/7153574#7153574为例。 –

+0

有没有什么办法可以修改FileReader构造函数中的路径参数,以使其工作而不是使用此资源流? – user1163203