在java中,在多语言国际化时可以用 *.java 类来作为资源文件使用。

1. 首先定义类, 类必须继承ListResourceBundle

类所在路径为: src/I18N

 public class myMessage_en_US extends ListResourceBundle {

     private final Object mydata[][] = { { "hello", "hello!" },
{ "greetting", "Love you . {0}" } }; @Override
protected Object[][] getContents() {
return mydata;
} }

2. 编写测试用例,使用资源文件

该文件在default package 包里面

    public static void main() {
Locale current = new Locale("zh","CN");
ResourceBundle bundle = ResourceBundle.getBundle("myMessage", current);
String format = bundle.getString("greetting");
System.out.println(MessageFormat.format(format, "Jay"));
}

可惜的是出错了

Exception in thread "main" java.util.MissingResourceException: Can't find bundle for base name myMessage, locale zh_CN
at java.util.ResourceBundle.throwMissingResourceException(Unknown Source)
at java.util.ResourceBundle.getBundleImpl(Unknown Source)
at java.util.ResourceBundle.getBundle(Unknown Source)
at program.I18NTest(program.java:89)
at program.main(program.java:20)

尝试很多次之后还是不好使,最终把类 myMessage_en_US和调用的main函数都放在了default package下面。好使了

输出结果

你好,Jay

看来是资源路径的问题,经过各种尝试之后把路径进行了修改,如下

private static void I18NTest() {
Locale current = new Locale("zh","CN");
ResourceBundle bundle = ResourceBundle.getBundle("I18N.myMessage", current);
String format = bundle.getString("greetting");
System.out.println(MessageFormat.format(format, "Jay"));
}

而不是修改文件存放的路径。

Java: MissingResourceException, "Can't find bundle for base name myMessage, locale zh_CN"的更多相关文章

  1. java.util.MissingResourceException: Can't find bundle for base name init, locale zh_CN问题的处理

    一.问题描述 项目开发使用的是SSM框架,项目那个正常运行,开发一个新功能后,添加了一些配置文件,再重新运行项目抛出异常,找不到name为init的bean. 二.异常信息详细 六月 30, 2018 ...

  2. java.util.MissingResourceException: Can't find bundle for base name db, locale zh_CN

    在使用Bundle来加载配置文件的时候, 爆出了这个错误: 原因? 没有找到需要加载的配置文件,因为配置文件必须放在src目录下面, 如果放进了com.bj186.crm的包下面,就必须添加包的名称到 ...

  3. Can't find bundle for base name ClientMessages, locale zh_CN

    这是个关于JAVA国际化方面的语音包的问题. 提示这个错误信息就是说找不到代码里写的配置文件. 我这个错误发生在导入一个已经存在的项目时发生的. 解决办法:将配置文件*.properties所在的文件 ...

  4. 转:解决 java.util.MissingResourceException: Can't find bundle for base name com...config, locale zh_CN 错误

    Solve java.util.MissingResourceException: Can't find bundle for base name com...config, locale zh_CN ...

  5. Caused by: java.util.MissingResourceException: Can't find bundle for base name javax.servlet.LocalStrings, locale zh_CN

    这个是很早以前的一个bug了,最近开始用idea发现追源码相当方便,于是结合网上的解决方案以及自己的判断追踪一下原因,当然没有深究,只是根据提示一直追而已:先说一下解决方案: <dependen ...

  6. Cause: java. lang.InstantiationException: tk.mybatis.mapper.provider.base.BaseInsertProvider

    相信现在Java Web开发都是用的mybatis吧,而用到mybatis很多人都不会错过通用mapper吧! (纯属瞎扯淡...qwq). 如我上一篇博客所写,目前公司新项目,使用了通用mapper ...

  7. spring ----> ResourceBundle [message] not found for MessageSource: Can't find bundle for base name message, local_zh

    环境: idea 2018.1.3社区版,jdk8,spring4.2.0,maven3.5.2 主题: spring国际化 出现的问题: ResourceBundle [message] not f ...

  8. 解决java.lang.NoSuchMethodException: tk.mybatis.mapper.provider.base.BaseSelectProvider

    今天在集成Mapper时 出现如下错误 java.lang.NoSuchMethodException: tk.mybatis.mapper.provider.base.BaseSelectProvi ...

  9. springboot访问出错,mapperScan导包错误java.lang.NoSuchMethodException: tk.mybatis.mapper.provider.base.BaseSelectProvider.<init>() at java.lang.Class.getConstructor0(Class.java:3082) ~[na:1.8.0_172] at java.

    2019-08-06 12:42:03.153 ERROR 10080 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Se ...

随机推荐

  1. StackTrace堆栈跟踪记录详细日志

    使用StackTrace堆栈跟踪记录详细日志(可获取行号) 2014-04-25 22:30 by 螺丝钉想要螺丝帽, 350 阅读, 3 评论, 收藏, 编辑 上一篇我们提到使用.NET自带的Tra ...

  2. C#的Task和Java的Future

    C#的Task和Java的Future 自从项目中语言换成Java后就很久没有看C#了,但说实话我是身在曹营心在汉啊.早就知道.NET4.5新增了async和await但一直没有用过,今天看到这篇文章 ...

  3. Day2:T1搜索 T2最小生成树

    T1:广搜+判断矩形 注:如何判断搜的是否为矩形: 在广搜的时候,记录下边界的坐标,然后枚举一遍过去,如果搜到"."就是牛群,否则就是房间 瞥了一眼ccy的做法,据说是floodf ...

  4. 强制卸载VS2013

    最近因为VS2013闹许可证过期问题,加之又发现新版本update5,所以就想卸掉重装,但是按照正常的卸载,发现卸载不了,再后来force强制卸载,OK了. force强制卸载: 首先如果安装了中文包 ...

  5. EF Power Tools 参数错误 HRESULT:0x80070057 (E_INVALIDARG))

    数据库名称使用数字开头,使用EF Power Tools生成映射时,会提示:“参数错误. (Exception from HRESULT: 0x80070057 (E_INVALIDARG))”. 解 ...

  6. 企业架构与建模之Archimate视图和视角

    企业架构与建模之Archimate视图和视角 3. ArchiMate的视角与视图 创建.维护一个企业架构是一件非常复杂繁琐的事情,因为这项工作需要面对许多背景.利益各异的干系人,对他们所关注的问题进 ...

  7. C#快速学习

    C#快速学习笔记(译)   下面是通过代码快速学习C#的例子. 1.学习任何语言都必定会学到的hello,world! using System; public class HelloWorld { ...

  8. 序列化json对象,通过ajax传入asp.net mvc后台

    序列化json对象,通过ajax传入asp.net mvc后台 序列化json对象,通过ajax传入asp.net mvc后台   今天遇到一个问题,准备把组织好的json对象通过jquery.aja ...

  9. 目标HttpController在ASP.NET Web API中是如何被激活的:目标HttpController的创建

    目标HttpController在ASP.NET Web API中是如何被激活的:目标HttpController的创建 通过上面的介绍我们知道利用HttpControllerSelector可以根据 ...

  10. 微信移动端web页面调试小技巧

    技术贴还是分享出来更加好,希望能对一些朋友有帮助,个人博客  http://lizhug.com/mymajor/微信移动端web页面调试小技巧