无法在Java中加载属性文件

use*_*434 1 java properties

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

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

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

<property name="x">
    <util:properties location="classpath:x.properties" />
</property>
Run Code Online (Sandbox Code Playgroud)

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

aio*_*obe 6

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

如果你提供"classpath:x.properties"FileInputStream它,它将寻找一个名为的文件 classpath:x.properties.(查看该特定构造函数的文档.)

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

p.load(getClass().getResourceAsStream("mail.properties"));
Run Code Online (Sandbox Code Playgroud)