我遇到麻煩時,我的Web應用程序所依賴的一個罐子試圖從jar中加載屬性文件。這是jar中的代碼。在JAR中加載屬性文件?
static
{
Properties props = new Properties();
try
{
props.load(ClassLoader.getSystemResourceAsStream("someProps.properties"));
} catch (IOException e)
{
e.printStackTrace();
}
someProperty = props.getProperty("someKey");
}
屬性文件位於Maven項目的「src/main/resources」目錄中。當我在Eclipse的junit測試中運行這段代碼時,它執行得很好。當使用Maven將項目構建到jar中,並將其作爲依賴項包含在我的webb應用程序中時,它無法找到屬性文件。我知道屬性文件位於依賴於jar的基礎目錄,我不知道如何解決這個問題。
請幫忙!
此外,使用線程的上下文類加載器在'Thread.currentThread()getContextClassloader()' – 2010-05-12 01:15:16
@binilŤ小費的小費。我從來不需要這樣做 - 何時需要? – mdma 2010-05-12 01:25:10
@binil - 我已經研究了這一點,並且理解上下文classloader用於當您想離開classloader的層次結構並使用不是您的類加載器的祖先之一的類加載器時。上下文類加載器在這裏不是必需的,因爲資源在同一個webapp中,因此和MyClass在同一個類加載器中。 – mdma 2010-05-12 11:52:09