簡體   English   中英

在 Java 中使用相對目錄路徑

[英]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"); 從類路徑中獲取它;

卡爾

您需要的是getCanonicalPathgetCanonicalFile來解析相對路徑。

System.out.println(new File("../../../ggla/samples/obj/linux_x86")
    .getCanonicalPath());

您可以使用您描述的相對路徑,它應該可以工作。 所以錯誤可能在其他地方。

請發布一個完整的程序來重現您的錯誤,然后我們可能會提供幫助。

我將首先使用 Java File 類中指定的分隔符和路徑分隔符。 但是,正如我在評論中所說,我需要比“失敗”更多的信息來提供幫助。

對於相對路徑,也許您可​​以使用 java 提供的方法之一作為相對路徑的開頭作為 getRelativePath .... 您必須在 java 中的字符串中使用 / 而不是 // !

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM