簡體   English   中英

無法從Jar文件讀取資源

[英]Cannot read resource from Jar File

我在解決這個問題時遇到了麻煩,並且我已經嘗試了幾乎所有方法。

我希望我的程序從Jar File中讀取兩個資源,並且它將在eclipse中正常運行。 但是,當我從命令提示符運行jar時,它給出了nullpointer異常。

結構體:

src / main / java / App.java

src / main / resources / properties / application.properties

src / main / resources / spring / applicationContext.xml

碼:

讀取application.properties

properties.load(App.class.getResourceAsStream(“ / properties / application.properties”));

讀取applicationContext.xml

context = new ClassPathXmlApplicationContext(“ / spring / applicationContext.xml”);

錯誤:

加載application.properties java.lang.NullPointerException時出錯

我可能做錯了什么?

在您的結構中,您顯示了.java在哪里,但您缺少.class。 它所在的路徑是類加載器將使用的路徑。 應該有你的資源

編輯:澄清一下。 在您的文章中,您提到了App.java的路徑。 但是類加載器只關心App.class,所以假設您有

\src
 |...(App.java and whatever, these will be ignored)
\bin
 |
 |--App.class
 |
\bin\resources\...(properties and whatever, these will be read)

您應該確保在bin下具有屬性和spring目錄。 如果src中只有.java,則類加載器將忽略它。

假設它們在運行時可在類路徑上使用的jar文件中,則第一個getResourceAsStream()示例可能會失敗,因為您未在jar文件中指定完整路徑。 (這也是常見的失敗,它會忽略前導/,但是您似乎還可以。)例如:

properties.load(App.class.getResourceAsStream("/src/main/resources/properties/application.properties"));

但是,如果不確定在構建的jar文件中給出了文件的位置(路徑),請嘗試

jar -tvf <your-jar>.jar

看看里面到底有什么。

無法評論ClassPathXmlApplicationContext ; 不是Spring開發人員。

暫無
暫無

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

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