[英]Using relative directory path in Java
我正在嘗試使用相對路徑來定位 Java 類中的可執行文件,而不是有效的硬編碼行,但使用以下內容:
final static String directory = "../../../ggla/samples/obj/linux_x86"
失敗......在Java中使用相對路徑的正確方法是什么?
最可能的解釋是您的當前目錄不在您認為的位置。 您可以檢查 user.dir 的系統屬性以查看應用程序的基本路徑是什么,或者您可以執行以下操作:
System.out.println(new File(".").getCanonicalPath());
在您使用該相對路徑調試相對引用開始的位置之前。
使用 System.out.println(System.getProperty("user.dir")); 查看您當前的目錄在哪里。 然后,您可以使用來自該地址的相對路徑。
或者,如果您不需要更新您嘗試讀取的文件,則使用 getResourceAsStream("filename"); 從類路徑中獲取它;
卡爾
您需要的是getCanonicalPath
或getCanonicalFile
來解析相對路徑。
System.out.println(new File("../../../ggla/samples/obj/linux_x86")
.getCanonicalPath());
您可以使用您描述的相對路徑,它應該可以工作。 所以錯誤可能在其他地方。
請發布一個完整的程序來重現您的錯誤,然后我們可能會提供幫助。
我將首先使用 Java File 類中指定的分隔符和路徑分隔符。 但是,正如我在評論中所說,我需要比“失敗”更多的信息來提供幫助。
對於相對路徑,也許您可以使用 java 提供的方法之一作為相對路徑的開頭作為 getRelativePath .... 您必須在 java 中的字符串中使用 / 而不是 // !
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.