国际化时出现的问题:
以下两个属性文件放在根路径下,可以加载到
Message_zh_CN.properties
info=\u4f60\u597d\uff0c{0}\uff01
Message_en_US.properties
info=Hello,{0},{1}!
当我移动到demo包中,出现了以下异常:
Exception in thread "main" java.util.MissingResourceException: Can't find bundle for base name classpath:demo1/Message, locale zh_CN
at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1521)
at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1260)
at java.util.ResourceBundle.getBundle(ResourceBundle.java:787)
at demo1.InterTest.main(InterTest.java:12)就是加载不到资源文件了package demo;import java.text.MessageFormat;
import java.util.Locale;
import java.util.ResourceBundle;public class InterTest {
public static void main(String[] args) {
Locale zh = new Locale("zh", "CN");
Locale en = new Locale("en", "US");

ResourceBundle zhrb = ResourceBundle.getBundle("classpath:demo1/Message",zh);
ResourceBundle enrb = ResourceBundle.getBundle("classpath:demo1/Message",en);

String zhstr = zhrb.getString("info");
String enstr = enrb.getString("info");

String str1 = MessageFormat.format(zhstr, "中国");
String str2 = MessageFormat.format(enstr, "china","cctv");

System.out.println(str1);
System.out.println(str2);
}}
求教

解决方案 »

  1.   

    ResourceBundle zhrb = ResourceBundle.getBundle("classpath:demo1/Message",zh);
    ResourceBundle enrb = ResourceBundle.getBundle("classpath:demo1/Message",en);你这儿是demo1啊?
      

  2.   


    不是这个问题,刚才copy时没有改过来
      

  3.   

    改成
    ResourceBundle zhrb = ResourceBundle.getBundle("demo.Message",zh);
    ResourceBundle enrb = ResourceBundle.getBundle("demo.Message",en);