我想制作一个简单的命令行 java 应用程序,它获取与应用程序的 jar 文件位于同一目录中的文件名作为参数,以便我可以从中读取。但是我收到了 FileNotFoundException。这是我的代码:
public static void main(String[] args) {
if (args.length == 0) {
System.out.println("Give the name of the input file as argument.");
} else if (args.length > 1) {
System.out.println("Only one input file is allowed");
} else {
try {
BufferedReader in = new BufferedReader(new FileReader(args[0]));
System.out.println("File found");
} catch (FileNotFoundException e) {
System.out.println("Could not find file " + args[0]);
}
}
}
所以假设我在同一个目录中有一个名为 a.txt 的 txt 文件和 myApp.jar 文件。我启动 cmd 和 cd 到这个特定的目录,然后输入:
java -jar myApp.jar a.txt
我得到“找不到文件a.txt”
我究竟做错了什么?
编辑:在考虑之后我猜该文件没有找到,因为它应该与类文件位于同一目录中,换句话说,在 jar 中。所以我的问题是,当它在 jar 文件之外时如何访问它?