当我的网络应用程序所依赖的其中一个罐试图从jar中加载属性文件时,我遇到了麻烦.这是jar中的代码.
static
{
Properties props = new Properties();
try
{
props.load(ClassLoader.getSystemResourceAsStream("someProps.properties"));
} catch (IOException e)
{
e.printStackTrace();
}
someProperty = props.getProperty("someKey");
}
Run Code Online (Sandbox Code Playgroud)
属性文件位于Maven项目的"src/main/resources"目录中.当我在Eclipse中的junit测试中运行此代码时,它执行得很好.当项目使用Maven构建到jar中,并作为依赖项包含在我的Web应用程序中时,它无法找到属性文件.我知道属性文件位于依赖于jar的基本目录中,我不知道如何解决这个问题.
这是令人难以置信的......当我在包含文本文件的打包JAR文件上运行Java时,我可以使getResource()和getResourceAsStream()正常工作.(供参考,请参阅有关访问资源的Sun文档)当我在Eclipse中运行它时,我似乎无法使相同的程序正常工作,即使我已将我的文本文件放在与编译的.class文件相同的树中
你们其中一个人可以指出我的任何细微之处,以确保getResource()和getResourceAsStream()函数正常工作吗?
我有一个预感,它与CLASSPATH有关,和/或Eclipse将.class文件自动编译.(我注意到当我运行Ant时,它编译了自上次Ant构建以来已经更改的所有Java文件,即使Eclipse已经编译了这些Java文件.)