无法在Java中加载属性文件

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

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

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

    

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

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

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

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

 p.load(getClass().getResourceAsStream("mail.properties")); 

如果mail.properties确实在你的类路径上,你将有更好的运气通过类加载器加载它:

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