簡體   English   中英

getResourceAsStream 返回具有正確路徑的 null

[英]getResourceAsStream returns null with correct path

我的一段代碼:

private InputStream assetFromJAR(String fileName) {
    return getClass().getResourceAsStream("/view/assets/ims/" + fileName + ".png");
}

總是返回空...

我的結構是:

src
  main
   java  <- source root
     view
       assets
         ims

它沒有意義為什么會發生這種情況,路徑是正確的那么為什么它總是返回 null?

感謝您的回答!

Maven java 項目的結構將 *.java 文件和資源文件(如 *.properties、*.jpg、*.png 等)分開

  • 對於 *.java 文件:src/main/java 文件夾
  • 對於資源:src/main/resources

因此,將資源文件直接放在“src/main/resources”或資源目錄的子文件夾下(如項目的“src/main/resources/view/assets/ims/”)。

然后你就可以輕松訪問資源文件了。

private InputStream assetFromJAR(String fileName) {
     return getClass().getResourceAsStream("/view/assets/ims/" + fileName + ".png");
}

我將從一些顯而易見的事情開始,因為您沒有說明您嘗試過的內容。 如果您已經完成或意識到這一點,我深表歉意:

以“/”開頭的路徑位於類路徑中的某處。 不以“/”開頭的路徑,從調用代碼的地方開始。 您的類路徑根可能不是您認為的那樣,或者 .png 文件沒有從您的源目錄移動到目標目錄。

您是否已驗證該文件位於目標目錄中(假設您使用 Maven 進行構建),或者您的 .class 文件位於何處?

您是否已驗證您的類路徑根是什么?

暫無
暫無

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

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