java中.txt文件的路径

java中.txt文件的路径,java,file,path,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?Java希望找到与工作目录相关的文件。因此,通过在

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

File file=new File("src/myapp/mytext.txt");
但是如果我构建jar文件并双击它或从命令行启动它,我会得到以下错误:

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

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

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

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


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

您可以通过以下方式获得文件路径,该路径与文件的位置无关:

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

没有这样的问题

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

如何从NetBeans将其放到src之外?“源程序包”外没有文件夹。项目的绝对路径是什么?你的
src
在某个地方。仍然获取java.io.FileNotFoundException:。\src\myapp\mytext.txt如果我在外部运行,这与它的位置无关。这假设它位于类路径中,如果从jar文件运行,它将只包含jar文件的内容。由于文件路径,我假设它在类路径中,因此使用它可以运行jar,而不依赖于项目在计算机中的位置。是的,不清楚OP是否将文件打包在jar中(不过我希望它位于resources文件夹中)或者他只是希望在工作目录外面找到它。