我已经使用 eclipse 编写了 java 代码,并且正在读取文件并处理代码。 key.txt 与 src 位于同一文件夹中。
BufferedReader br= new BufferedReader(new FileReader("KEY.txt"));
现在,在我编译 jar 并将 jar 和文件放在同一文件夹中并执行 iam 后,出现 FilenotFoundException。如果我在 Eclipse 中运行并完美地读取文件,该程序就可以工作。
jar 文件和 key.txt 必须始终位于同一文件夹中。 请让我知道如何解决 FilenotFoundException 的问题。
最佳答案
您拥有的代码会在当前工作目录中打开一个文件,该目录是您启动 Java 进程的目录。
这与 jar 文件所在的位置完全无关。
如何执行 jar 文件?
如果 key 文件位于 jar 文件旁边,则这应该有效:
java -jar theJar.jar
但这不会(因为 key 的路径现在是“test/KEY.txt”):
java -jar test/theJar.jar
当您在 Eclipse 中运行程序时,当前工作目录(通常)是项目根文件夹。
可以考虑的另一种选择(如果用户不需要编辑该文件)是将 key 文件放入 jar 文件中。这样就不会丢失,并且可以通过类加载器加载它。
另一个不错的选择是让用户通过命令行参数或系统属性提供文件的路径。
或者制作一个批处理文件/shell 脚本,以确保您始终从正确的目录运行。
关于java - 作为 Jar 运行时出现 FileNotFoundException - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9885881/