我有一个非常简单的属性文件测试我正在努力工作:(以下是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
我做错了吗?
答案 0 :(得分:28)
将其置于其中一个源路径的根级别,或者在调用getBundle
时完全限定资源名称,例如
ResourceBundle myResources =
ResourceBundle.getBundle("com.example.test.TestProperties");
有关详细信息,请参阅ResourceBundle.getBundle(String, Locale, ClassLoader)
的文档。
答案 1 :(得分:13)
请勿将您的propierties文件放入您的src文件夹中!显然这是有效的,但基本上这不是你应该如何处理你的问题。在项目中创建一个新文件夹,例如'Resources'文件夹,将其添加到项目属性中的类路径中,并将除.java之外的所有文件放在那里。
答案 2 :(得分:2)
我刚刚尝试解决这个问题,我发现在尝试运行项目之前必须刷新Eclipse的文件列表。然后,您可以将文件放在基目录中并正常使用它们。
答案 3 :(得分:1)
将文本属性en_US.properties(property)文件放在src文件夹中,然后运行它将运行的程序
答案 4 :(得分:0)
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);
}
}
}