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

时间:2009-04-17 22:45:30

标签: java eclipse properties

我有一个非常简单的属性文件测试我正在努力工作:(以下是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

我做错了吗?

5 个答案:

答案 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);
        }
    }
}