我有一个小应用程序,它检查文件中的值并在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 ??
答案 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通常要求的格式