我使用 NetBeans IDE,我在 src/myapp 文件夹中保存了一个 .txt 文件。如果我从 IDE 运行,这会识别我的File file=new File("src/myapp/mytext.txt");但是,如果我构建 jar 文件并双击它或从命令行启动它,我会收到此错误:java.io.FileNotFoundException: src\myapp\mytext.txt我可以插入绝对路径,但是如何根据我的项目在计算机中的位置独立运行我的 jar?
3 回答
Qyouu
TA贡献1786条经验 获得超11个赞
您可以通过以下方式独立于其位置获取文件路径:
ClassLoader classLoader = getClass().getClassLoader(); String path = classLoader.getResource("mytext.txt").toString();
慕码人2483693
TA贡献1860条经验 获得超9个赞
Java 期望找到与您的工作目录相关的文件。因此,通过对文件进行硬编码,src/myapp/mytext.txt
您希望应用程序的用户在相同的文件夹结构下拥有该文件。
如果您希望该文件与 jar 文件处于同一级别,则只需使用./mytext.txt
. 不要把你的mytext.txt
下src
放在你的项目中。这适用于您要在 jar 文件中编译和/或捆绑的源。在 NetBeans 中,将它移到/src
文件夹外,这样当您从 IDE 运行程序或从外部运行 Jar 文件时,您会发现该文件处于同一级别。
如果您希望用户能够自己指定文件的位置,您还可以读取命令行参数(您的 参数public static void main(String[] args)
)。
添加回答
举报
0/150
提交
取消