关于ResourceBundle跟PropertyResourceBundle

关于ResourceBundle跟PropertyResourceBundle

By qingyunshaojie    at 2014-07-05    48 阅读    1 回复    0.0 希赛币
关于ResourceBundle和PropertyResourceBundle

  昨天一个项目,是我的前任发布到服务器上的,有个模块,一直没用到,所以也一直没有看出问题来。直到昨天要用到这个项目的时候,突然报错:

  java.util.MissingResourceException: Can't find bundle for base name config/para, locale en_US

  一看代码,这行代码是这么写的:

  PropertyResourceBundle sys = (PropertyResourceBundle) ResourceBundle.getBundle("config/para", Locale.US);

  OK,报错的意思,就是找不到config/para这个ResourceBundle,我开始以为是JNDI一类的,于是去找,找了半天一想 不对啊,这个项目没有哪儿有这类东东啊。网上搜索了半天,发现一个问题,就是别的地方用到ResourceBundle.getBundle()的,没有 一个是像我这样带"/"的。

  无奈,决定去翻javadoc。

  jdk doc里面,关于ResourceBundle.getBundle()这个方法的说明足足写了两页,大意是,传进来的参数叫baseName,还有一个 是locale,假如baseName是abc,locale是en_US,那么就应该去找一个叫abc_en_US.properties的文件,当然 如果没有找到,就省略一部分,找abc_en.properties等等,如果还是找不到,就找abc.properties,如果还没有,继续模糊匹 配,实在找不到,就扔出MissingResourceException来了。

  我总不能建一个文件叫config/para_en_US.properties吧……

  继续找javadoc,在那整整两页的文档最底下,找到了这么一行:

  The baseName argument should be a fully qualified class name. However, for compatibility with earlier versions, Sun's Java 2 runtime environments do not verify this, and so it is possible to access PropertyResourceBundles by specifying a path name (using "/") instead of a fully qualified class name (using ".").

  行,我服你了,去人家项目源代码库里面一找,在classes目录下面果然发现一个目录叫config,下面赫然躺着para.properties这么一个文件。拿下来上传,重启,不报错了,问题搞定。

  也就是说,这个baseName可以是classpath下面的一个路径,最后一行才是bundle名字。而且这是Sun老大为了兼容早期的版本加上的这么一个功能,而且只能是在PropertyResourceBundle这个子类里面用。

id="cproIframe_u1466302_1" width="728" height="90" src="http://pos.baidu.com/acom?adn=3&at=6&aurl=&cad=1&ccd=24&cec=UTF-8&cfv=16&ch=0&col=zh-CN&conOP=0&cpa=1&dai=1&dis=0&ltr=https%3A%2F%2Fwww.baidu.com%2Flink%3Furl%3D5y2hZ3eZbE6BFb5AqRbfJRn7IcCCXp61dlsByxvOoffD1JyBqRC4wVPWgwOG-r9ImKvANaOVm9JrDLeQgKzN_q%26ie%3Dutf-8%26f%3D8%26tn%3Dbaidu%26wd%3DPropertyResourceBundle&ltu=http%3A%2F%2Fwww.educity.cn%2Fwenda%2F364176.html&lunum=6&n=67051059_cpr&pcs=1067x571&pis=10000x10000&ps=937x49&psr=1366x768&pss=1067x938&qn=fadfa1c1288b098b&rad=&rsi0=728&rsi1=90&rsi5=4&rss0=%23FFFFFF&rss1=%23FFFFFF&rss2=%23666666&rss3=%23444444&rss4=%23008000&rss5=&rss6=%23e10900&rss7=&scale=&skin=&td_id=1466302&ti=%E5%85%B3%E4%BA%8EResourceBundle%E8%B7%9FPropertyResourceBundle_IT%E7%9F%A5%E8%AF%86%E9%97%AE%E7%AD%94_%E5%B8%8C%E8%B5%9B%E7%BD%91&tn=text_default_728_90&tpr=1428935343858&ts=1&version=2.0&xuanting=0&dtm=BAIDU_DUP2_SETJSONADSLOT&dc=2&di=u1466302&tt=1428935343846.13.89.90" align="center,center" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" allowtransparency="true" style="margin: 0px; padding: 0px; list-style: none;">

  

qingzhuaxiaoyu     2014-07-05        
评价(0) (0) (0)
 
id="cproIframe_u1526662_2" width="728" height="90" src="http://pos.baidu.com/acom?adn=3&at=6&aurl=&cad=1&ccd=24&cec=UTF-8&cfv=16&ch=0&col=zh-CN&conOP=0&cpa=1&dai=2&dis=0&ltr=https%3A%2F%2Fwww.baidu.com%2Flink%3Furl%3D5y2hZ3eZbE6BFb5AqRbfJRn7IcCCXp61dlsByxvOoffD1JyBqRC4wVPWgwOG-r9ImKvANaOVm9JrDLeQgKzN_q%26ie%3Dutf-8%26f%3D8%26tn%3Dbaidu%26wd%3DPropertyResourceBundle&ltu=http%3A%2F%2Fwww.educity.cn%2Fwenda%2F364176.html&lunum=6&n=67051059_cpr&pcs=1067x571&pis=10000x10000&ps=1243x49&psr=1366x768&pss=1067x1244&qn=97405253b8b0640b&rad=&rsi0=728&rsi1=90&rsi5=4&rss0=%23FFFFFF&rss1=%23FFFFFF&rss2=%23666666&rss3=%23444444&rss4=%23008000&rss5=&rss6=%23e10900&rss7=&scale=&skin=&td_id=1526662&ti=%E5%85%B3%E4%BA%8EResourceBundle%E8%B7%9FPropertyResourceBundle_IT%E7%9F%A5%E8%AF%86%E9%97%AE%E7%AD%94_%E5%B8%8C%E8%B5%9B%E7%BD%91&tn=text_default_728_90&tpr=1428935343858&ts=1&version=2.0&xuanting=0&dtm=BAIDU_DUP2_SETJSONADSLOT&dc=2&di=u1526662&tt=1428935343846.104.146.146" align="center,center" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" allowtransparency="true" style="margin: 0px; padding: 0px; list-style: none;">
温馨提示:本问题已经关闭,不能解答。
 
专家推荐
暂无合适的专家
id="cproIframe_u1981757_3" width="200" height="200" src="http://pos.baidu.com/acom?adn=4&at=231&aurl=&cad=1&ccd=24&cec=UTF-8&cfv=16&ch=0&col=zh-CN&conBW=0&conOP=1&cpa=1&dai=3&dis=0&ltr=https%3A%2F%2Fwww.baidu.com%2Flink%3Furl%3D5y2hZ3eZbE6BFb5AqRbfJRn7IcCCXp61dlsByxvOoffD1JyBqRC4wVPWgwOG-r9ImKvANaOVm9JrDLeQgKzN_q%26ie%3Dutf-8%26f%3D8%26tn%3Dbaidu%26wd%3DPropertyResourceBundle&ltu=http%3A%2F%2Fwww.educity.cn%2Fwenda%2F364176.html&lu_161=3&lunum=6&n=67051059_cpr&pcs=1067x571&pis=10000x10000&ps=419x809&psr=1366x768&pss=1067x1377&qn=505c818c3f5054a6&rad=&rsi0=200&rsi1=200&rsi5=4&rss0=%23FFFFFF&rss1=%23FFFFFF&rss2=%230000ff&rss3=%23444444&rss4=%23008000&rss5=&rss6=%23e10900&rss7=&scale=&skin=tabcloud_skin_2&stid=5&td_id=1981757&ti=%E5%85%B3%E4%BA%8EResourceBundle%E8%B7%9FPropertyResourceBundle_IT%E7%9F%A5%E8%AF%86%E9%97%AE%E7%AD%94_%E5%B8%8C%E8%B5%9B%E7%BD%91&titFF=%E5%BE%AE%E8%BD%AF%E9%9B%85%E9%BB%91&titFS=14&titTA=left&tn=text_default_200_200&tpr=1428935343858&ts=1&version=2.0&xuanting=0&dtm=BAIDU_DUP2_SETJSONADSLOT&dc=2&di=u1981757&tt=1428935343846.153.203.203" align="center,center" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" allowtransparency="true" style="margin: 0px; padding: 0px; list-style: none;">
最新问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值