2009-04-17 62 views
14

我有一个非常简单的属性文件测试,我试图让工作:(下面是TestProperties.java)将.properties文件放在Eclipse项目中的位置?

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 

我做错了什么?

回答

27

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

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

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

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); 
     } 
    } 
} 
2

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

1

把TestProperties_en_US.properties(属性格式)文件中的src文件夹,然后运行它会运行

13

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

相关问题