无法在Java中加载属性文件

时间:2011-09-29 10:45:23

标签: java properties

我正在尝试加载属性文件。适当的文件位于应用程序的类路径中。

 Properties p = new Properties();
 p.load(new FileInputStream("classpath:mail.properties"));
 System.out.println(p.get("hi"));

现在我说classpath,因为另一个名为x.properties的文件在这样的xml文件中被引用

<property name="x">
    <util:properties location="classpath:x.properties" />
</property>

我将mail.properties放在与x.properties相同的文件夹中,但我的Java程序无法找到它?知道我错过了什么吗?

2 个答案:

答案 0 :(得分:6)

仅仅因为某些程序处理XML文件喜欢语法classpath:x.properties并不意味着它是普遍接受的语法 in Java

如果您向"classpath:x.properties"提供FileInputStream,则将查找名为 classpath:x.properties的文件。 (查看该特定构造函数的文档。)

尝试提供该文件的完整路径。如果文件恰好在您的类路径上,您可以使用类似

的内容
p.load(getClass().getResourceAsStream("mail.properties"));

答案 1 :(得分:1)

如果mail.properties确实在你的类路径上,那么通过类加载器加载它会更好:

Properties p = new Properties();
InputStream is = getClass().getClassLoader().getResourceAsStream("mail.properties");
p.load(is);