.txt文件在Java中的路径

时间:2018-09-12 10:07:03

标签: java file path

我使用NetBeans IDE,并且在src / myapp文件夹中保存了一个.txt文件。如果我从IDE运行,这可以识别我的

File file=new File("src/myapp/mytext.txt");

但是,如果我构建jar文件并双击它或从命令行启动它,则会出现此错误:

java.io.FileNotFoundException: src\myapp\mytext.txt

我可以插入绝对路径,但是如何根据项目在计算机中的位置独立运行jar?

3 个答案:

答案 0 :(得分:3)

您可以通过以下方式独立获取文件路径:

ClassLoader classLoader = getClass().getClassLoader();
String path = classLoader.getResource("mytext.txt").toString();

答案 1 :(得分:0)

Java希望找到相对于您的工作目录的文件。因此,通过在src/myapp/mytext.txt中对文件进行硬编码,您可以期望应用程序的用户拥有 文件在相同的文件夹结构下。

如果您希望文件与jar文件处于同一级别,则可以只使用./mytext.txt。不要将mytext.txt放在项目的src下。那是您要在jar文件中进行编译和/或捆绑的源代码。在NetBeans中,将其移动到/src文件夹之外,这样,当您从IDE中运行程序或从Jar文件中外部运行程序时,您会发现该文件处于同一级别。

如果您希望用户能够自己指定文件的位置,则还可以读取命令行参数(public static void main(String[] args)的参数)。

答案 2 :(得分:0)

没有这样的问题

File file=new File("./src/myapp/mytext.txt");