1
我正在使用Java Spring Boot並部署到Tomcat 8.1 webapp。參考根的Tomcat servlet相對路徑
當我用相對路徑創建一個新的File()時,它指的是系統的絕對根。
例如,
File x = new File("./temp.txt");
System.out.println("X Path: " + x.getAbsolutePath());
輸出是
/./temp.txt
這是爲什麼?我得到一個Java.nio.File.AccessDeniedException,因爲Tomcat沒有權限寫入根目錄。
代碼是創建緩存文件的第三方庫,所以我不能切換到絕對路徑。
是什麼導致Tomcat使用/作爲我的工作目錄?
我使用的第三方庫專門使用了「./pemfile_cached」。上面的代碼是我確認我得到相同的結果。這是第三方庫,第197行:https://github.com/MachinePublishers/jBrowserDriver/blob/master/src/com/machinepublishers/jbrowserdriver/StreamConnectionClient.java –
您可能需要檢查[此鏈接](https:/ /stackoverflow.com/questions/10680637/servlet-tomcat-relative-file-path)。 TLDR:你可以使用'System.setProperty(「user.dir」,)'來設置當前目錄,而不是Tomcat的 –
Nathan
如果這樣,我將把它作爲最後的手段來保存。我寧願不必爲每個電話都明確地設置我目前的工作目錄,但如果必須的話,我會的。我懷疑tomcat配置(或缺少配置)是問題,但我不知道從哪裏開始尋找。 –