我遇到麻烦时,我的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