Java使用相对路径而不是绝对路径

时间:2020-08-27 14:52:08

标签: java relative-path readfile

我正在读取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"); 时,它将打开文件。

我需要添加什么才能获得相对的工作路径?

1 个答案:

答案 0 :(得分:1)

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