eclipse中的java文件相对路径

三天我试图弄清楚如何使用相对文件路径读取文件。 在eclipse中,这个编译并且工作得很好,但是当我导出app时。 它说它找不到文件。 这是我工作的截图和代码。

这段代码有效,但只有在eclipse中,它才能编译并完美地完成工作。 但是当我将其导出为runnable jar文件时,我得到一个错误,它无法找到licenca.txt

BufferedReader in = new BufferedReader(new FileReader(new File("licenca.txt").getPath())); String str; while ((str = in.readLine()) != null) { taLicenca.append(str + "\n"); } 

这是我的项目文件的屏幕截图

文件http://img207.imageshack.us/img207/5317/63432445.png

我试过使用扫描仪function,仍然是相同的结果,它在eclipse中工作,但在导出时不起作用。 这是错误消息:

错误http://img98.imageshack.us/img98/1771/greskaa.png

我敢打赌,如果你把那个文件放到类路径中它会起作用。

像这样更改你的代码:

 InputStream is = this.getClass().getClassLoader().getResourceAsStream("licenca.txt"); BufferedReader in = new BufferedReader(new InputStreamReader(is)); String str; while ((str = in.readLine()) != null) { taLicenca.append(str + "\n"); } 

试试看吧。

之所以发生这种情况是因为你的文件是作为jar文件的一部分导出的,所以,为了创建jar文件,尝试使用antmaven或semething,或者手动将你的文件与jar一起复制到目录中,它会调用start directory