无法在 Java 中加载属性文件

发布于 2024-12-07 08:05:41 字数 459 浏览 0 评论 0原文

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

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

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

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

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

I am trying to load a properties file. The properites file is in the class path of the application.

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

Now I say classpath, because another file called x.properties is referred in an xml file like this

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

I placed my mail.properties in the same folder as x.properties, but my Java program is not able to find it ? Any idea what I am missing ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

删除会话 2024-12-14 08:05:41

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

如果您向 FileInputStream 提供“classpath:x.properties”,它将查找名为 classpath:x.properties< /代码>。 (检查该特定构造函数的文档。)

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

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

Just because some program processing that XML file likes the syntax classpath:x.properties doesn't mean that it is a universally accepted syntax in Java!

If you provide "classpath:x.properties" to a FileInputStream it will look for a file named classpath:x.properties. (Check the documentation of that particular constructor.)

Try providing the full path to that file. If the file happens to be on your class path, you could use something like

p.load(getClass().getResourceAsStream("mail.properties"));
丢了幸福的猪 2024-12-14 08:05:41

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

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

if mail.properties is indeed on your classpath, you will have better luck loading it via a class loader:

Properties p = new Properties();
InputStream is = getClass().getClassLoader().getResourceAsStream("mail.properties");
p.load(is);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文