繁体   English   中英

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

[英]Java using relative path instead of absolute path

我正在用 Java 读取文件,当我使用绝对路径时,它工作正常。

File myObj = new File("/Users/aaronmk2/Downloads/demo2/SystemDependencies/src/sample_input.txt");

但是,当我尝试使用相对路径时,出现 No such file or directory 错误

File myObj = new File("../sample_input.txt");

当我使用我的终端并使用nano ../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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM