Java 文件不存在';使用netbeans创建jar后,无法读取

Java 文件不存在';使用netbeans创建jar后,无法读取,java,netbeans,jar,Java,Netbeans,Jar,我有一个小应用程序,它检查文件中的值,并在jframe中显示结果 包含要检查的单词列表的文件。该文件位于项目文件夹“testing”中,主source testing.java文件位于位置“testing\src\testing”中 因此,当创建一个jar文件时,它并没有包含输入文件,即使我手动输入的输入文件并没有接收输入文件并工作 一些路径设置问题?如何解决这个问题 任何帮助请尝试在文件路径中添加双反斜杠。像这样: c:\\document..\\netbeans\\testing\\src\

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

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

因此,当创建一个jar文件时,它并没有包含输入文件,即使我手动输入的输入文件并没有接收输入文件并工作

一些路径设置问题?如何解决这个问题


任何帮助请尝试在文件路径中添加双反斜杠。像这样:

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

这是java通常要求它采用的格式一旦创建jar,文件就成为嵌入式资源。如果您尝试将其作为
文件读取
,它将不再是您最初在程序中使用的文件系统路径。现在必须从类路径读取它

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

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

BufferedReader reader = new BufferedReader (new InputStreamReader(is));

当您不使用绝对路径时,通常会发生这种情况。。。! 当您从IDE(Netbeans)运行程序时,HOME_文件夹就是您的ProjectFolder。相对于该文件,您将给出文件路径(必须在程序中访问)

但是在构建之后,jar出现在ProjectFolder/dist中。当您运行jar文件时,HomeFolder不是ProjectFolder,而是ProjectFolder/dist

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


然后运行罐子。。希望它能解决这个问题

文件没有添加到jar中?或者您的程序没有读取该文件?@peeskillet文件未添加到jar。需要将input.txt添加到jar中,它应该可以工作。你能打开罐子看看吗?或者你只是得到了一个
FileNotFoundException
并假设它没有被添加?@peeskillet我已经打开了jar文件,没有看到它为什么没有被添加,但是我可以告诉你为什么手动添加时它没有被读取。请参阅下面我的答案以了解更多详细信息。不,我不想放置完整路径。目前我正在使用新的FileReader(“input.txt”),没有完整的路径,它正在工作,为了工作,input.txt应该在上面提到的输入文件路径中。虽然构建此文件不包括在jar文件中,但如何包含它是我的问题?因此,您的应用程序名为“testing”,并且您希望该文件显示在“testing\src\testing”中?是的。我已将文件放在该src\testing\location中,然后它就不工作了。仅当文件位于\testing\文件夹中时,程序才会工作
BufferedReader reader = new BufferedReader (new InputStreamReader(is));