[英]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 等)分開
因此,將資源文件直接放在“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.