簡體   English   中英

嘗試從資源文件夾中讀取文件時出現 NullPointerException

[英]NullPointerException when trying to read a file from resources folder

我想讀取一個屬性文件,如下所示:

Properties props = new Properties();
props.load(MajorBot.class.getResourceAsStream("application.properties"));

但是當我試圖這樣做時,我得到一個錯誤:

Exception in thread "main" java.lang.NullPointerException: inStream parameter is null at java.base/java.util.Objects.requireNonNull(Objects.java:246) at java.base/java.util.Properties.load(Properties. java:406) 在 majorbot.MajorBot.main(MajorBot.java:13)

我的應用程序是使用新的 Gradle/Java 項目 IntelliJ 創建的。 創建后,那里已經有一個resources目錄。 我在那里創建了application.properties ,但我無法讀取這個文件。

有沒有辦法來解決這個問題?

getResourceAsStream將嘗試在與當前類的 package 匹配的resources子文件夾中查找您的文件。 如果要訪問不在子文件夾中的文件,請將其指定為例如“/application.properties”

MajorBot.class.getResourceAsStream("application.properties")將嘗試從當前路徑讀取。 您想要的是從 class 加載程序的角度來看。

props.load(MajorBot.class.getClassLoader().getResourceAsStream("application.properties"));

這應該可以解決您的問題

暫無
暫無

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

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