我正在尝试加载属性文件。适当的文件位于应用程序的类路径中。
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程序无法找到它?知道我错过了什么吗?
答案 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);