使用netbeans创建jar后,文件无法读取

时间:2014-04-13 10:42:10

标签: java netbeans jar

我有一个小应用程序,它检查文件中的值并在jframe中显示结果。

文件包含要检查的单词列表。此文件放在项目文件夹“testing”中,主要的来源testing.java文件位于“testing \ src \ testing”位置

input file : c:\document..\netbeans\testing\
java file : c:\document..\netbeans\testing\src\testing\


when i place the input file inside folder "c:\document..\netbeans\testing\src\testing\
" the input file is not taken as input, it works only when kept on folder "c:\document..\netbeans\testing\"

所以当创建一个jar文件时,它没有包含输入文件,即使我手动输入也没有输入文件和工作。

一些路径设置问题?可以做些什么来解决这个问题?

任何帮助pls ??

3 个答案:

答案 0 :(得分:0)

创建jar后,该文件将成为嵌入式资源。如果您尝试将其作为File读取,则它将不再与您最初在程序中使用的文件系统路径相同。现在必须从类路径中读取它。

要从类路径中读取文件,您需要使用返回getClass().getResourceAsStream()的{​​{1}}。如果您的文件与类文件位于同一位置(包),则应使用

InputStream

然后您可以阅读InputStream is = getClass().getResourceAsStream("input.txt");

InputStream

答案 1 :(得分:0)

这通常发生在您不使用绝对路径时!! 当您从IDE(Netbeans)运行程序时,HOME_FOLDER是您的ProjectFolder。相对于您要给定的file_path(必须在程序中访问)。

但是在构建之后,jar存在于ProjectFolder / dist中。运行jar文件时,HomeFolder不是ProjectFolder,而是ProjectFolder / dist。

因此,要使其成功,需要将所有文件和文件夹从ProjectFolder / dist复制到ProjectFolder。

然后运行jar。.希望它可以解决问题

答案 2 :(得分:-1)

尝试在文件路径中添加双反斜杠。像这样:

c:\\document..\\netbeans\\testing\\src\\testing\\

这是java通常要求的格式