问题描述
我正在读取Java文件,当我使用绝对路径时,它可以正常工作。
"browser_specific_settings": {
"gecko": {
"update_url": "https://universal-bypass.org/firefox/updates.json"
}
},
但是,当我尝试使用相对路径时,出现“没有此类文件或目录错误”
File myObj = new File("/Users/aaronmk2/Downloads/demo2/SystemDependencies/src/sample_input.txt");
当我使用终端并使用File myObj = new File("../sample_input.txt");
时,它将打开文件。
我需要添加什么才能获得相对的工作路径?
解决方法
Java做相对路径就好了。显然,当您调用nano
时,您的Java进程的“当前工作目录”与cwd不同。
您可以在Java中检查CWD。两种方法都可以:
System.out.println(new File(".").getAbsolutePath());
或:
System.out.println(System.getProperty("user.dir"));
您应该发现它是不同的。 Java进程的“ cwd”是任何启动的java都将其设置为的cwd。如果您是从命令行调用Java,那么它将是您所在的目录。如果您双击一个jar,它将是该jar所在的目录。如果您正在制作Windows快捷方式,则它是快捷方式中列出的目录。示例:
cd /foo/bar
java -jar /bar/baz/hello.jar
在上面的示例中,cwd为/foo/bar
。不是/bar/baz
。