[转] ListResourceBundle doesn't run inside package

原文地址:
http://www.eclipse.org/forums/index.php/m/660152/
问题:使用 ResourceBundle.getBundle 时,提示“Can’t find bundle for base name …”?
原因:调用 ResourceBundle.getBundle 方法时,没有指定 package。
例如:如下代码无法访问到指定的文言:

1
2
3
4
5
6
7
8
9
10
package <package>;
import java.util.Locale;
import java.util.ResourceBundle;
public class SimpleListResourceBundleExample {
static public void main(String[] args) {
ResourceBundle stats = ResourceBundle.getBundle("StatsBundle", Locale.ENGLISH);
String source = (String) stats.getObject("Source");
System.out.println("Source = " + source);
}
}

1
2
3
4
5
6
7
8
package <package>;
import java.util.ListResourceBundle;
public class StatsBundle_en extends ListResourceBundle {
public Object[][] getContents() {
return contents;
}
private Object[][] contents = { { "Source", new String("StatsBundle_en.java") } };
}

解决办法:调用 ResourceBundle.getBundle 方法时,指定 package。所以上述代码需要改成:ResourceBundle.getBundle(.StatsBundle”,Locale.ENGLISH);

坚持原创及高品质技术分享,您的支持将鼓励我继续创作!