将.properties文件放在Eclipse项目中的位置?

我有一个非常简单的属性文件测试我试图工作:(以下是TestProperties.java)

package com.example.test; import java.util.ResourceBundle; public class TestProperties { public static void main(String[] args) { ResourceBundle myResources = ResourceBundle.getBundle("TestProperties"); for (String s : myResources.keySet()) { System.out.println(s); } } } 

和TestProperties.properties在同一目录中:

 something=this is something something.else=this is something else 

我也保存为TestProperties_en_US.properties

当我从Eclipse运行TestProperties.java时,它找不到属性文件:

 java.util.MissingResourceException: Can't find bundle for base name TestProperties, locale en_US 

难道我做错了什么?

将它放在您的一个源路径的根级别,或者在调用getBundle完全限定资源名称,例如

 ResourceBundle myResources = ResourceBundle.getBundle("com.example.test.TestProperties"); 

有关更多信息ResourceBundle.getBundle(String, Locale, ClassLoader)请参阅ResourceBundle.getBundle(String, Locale, ClassLoader)的文档。

不要将您的propierties文件放入您的src文件夹! 显然这是有效的,但基本上这不是你应该如何处理你的问题。 在项目中创建一个新文件夹,例如“Resources”文件夹,将其添加到项目属性中的类路径中,并将除.java之外的所有文件放在那里。

我刚刚尝试解决这个问题,我发现在尝试运行项目之前必须刷新Eclipse的文件列表。 然后,您可以将文件放在基目录中并正常使用它们。

将TestProperties_en_US.properties(propery)文件放在src文件夹中,然后运行它将运行的程序

啊哈,谢谢你们。 这也有效。

 package com.example.test; import java.util.ResourceBundle; public class TestProperties { public static void main(String[] args) { ResourceBundle myResources = ResourceBundle.getBundle(TestProperties.class.getCanonicalName()); for (String s : myResources.keySet()) { System.out.println(s); } } }