簡體   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