java中.txt文件的路径
我使用NetBeans IDE,在src/myapp文件夹中保存了一个.txt文件。如果我从IDE运行,这将识别我的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希望找到与工作目录相关的文件。因此,通过在
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文件夹中)或者他只是希望在工作目录外面找到它。