我有一个jar
文件和properties
配置文件。
当我在Netbeans
中运行它时,一切都正常工作。
但是当我在cmd
中运行它时-没有找到属性文件。
为什么?
这取决于您如何加载属性文件。考虑在:
的帮助下加载属性InputStream in = getClass().getResourceAsStream("/log4j.properties");
然后使用Properties.load(in)
这应该可以处理属性文件实际驻留在jar中的情况好运!
当您将属性打包到jar文件中时,您必须使用类装入器来定位该文件,因为它不再可见作为文件。
如果属性文件位于jar文件的根目录处,那么上面给出的答案就是您将使用的:
Properties p = new Properties();
InputStream is = MyClass.class.getResourceAsStream("/config.properities");
if( is != null )
{
p.load(is);
}
应该返回一个InputStream,你可以把它传递给properties类来加载。如果该调用返回NULL,那么您需要查看属性文件相对于jar文件的根文件的位置。