运行Jar - Java时出现FileNotFoundException

时间:2012-03-27 08:31:01

标签: java jar filenotfoundexception

我已经使用eclipse和iam编写了我的java代码来读取文件并处理代码。 key.txt与src位于同一文件夹中。

BufferedReader br= new BufferedReader(new FileReader("KEY.txt"));

现在我编译jar并将jar和文件放在同一个文件夹中并执行iam获取FilenotFoundException。如果我在Eclipse内部运行完美地阅读文件,该程序是有效的。

jar文件和key.txt始终必须位于同一文件夹中。 请让我知道如何解决FilenotFoundException这个问题。

2 个答案:

答案 0 :(得分:2)

您所拥有的代码在当前工作目录中打开一个文件,该目录是您启动Java进程的目录。

这与jar文件的位置完全无关。

如何执行jar文件?

如果密钥文件就在jar文件旁边,那么这应该有效:

java -jar theJar.jar     

但这不会(因为键的路径现在是“test / KEY.txt”):

java -jar test/theJar.jar 

在Eclipse中运行程序时,当前工作目录(通常)是项目根文件夹。

另一种考虑因素(如果用户不需要编辑文件)是将密钥文件放入 jar文件中。然后它不会丢失,你可以通过类加载器加载它。

另一个好的选择是让用户通过命令行参数或系统属性提供文件的路径。

或制作批处理文件/ shell脚本,确保始终从正确的目录运行。

答案 1 :(得分:0)

我认为您应该将这些文件与运行类的类文件放在一起,因为当前目录是存储类文件的目录,而不是源java文件。