MissingResourceException

westwin 2004-12-24 02:10:34
使用ResouceBundle.getBundle()时抛出这个异常
代码如下
package test;
ResourceBundle rs=ResourceBundle.getBundle("resource.Notepad",Locale.getDefault());
资源文件为resource\Notepad_zh_CN.properties

单独运行时,可以正常运行,打包成jar时不行(把resource\Notepad_zh_CN.properties也打到jar中可以正常运行)

但是,如果不把资源文件打进jar中就抛出异常,怎么处理?


...全文
138 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ForestOcean 2004-12-28
  • 打赏
  • 举报
回复
老兄啊,你要做什么啊?将世界各国的语言的版本集成到你的软件中吗?在软件需求分析的阶段,应该将它放到考虑中去啊,我看到在jdk.demo.jfc.SwingSet2中除了英语只有下列两种语言,也就是说,它是专门为英、中、日三国服务的,老兄,就我所知就有将近70种语言,你要做什么啊?让用户自己定义native,再native2ascii一下?
_ja_JP
_zh_CN


呵呵,没有什么建设性意见,希望各位指正。
Eraserpro 2004-12-28
  • 打赏
  • 举报
回复
恐怕只能先把文件释放到一个临时路径后再访问了

Eclipse就是这么做的,它把国际化的信息都放在configures目录下,所以这种时候如果改动了jar的文本就需要eclipse.exe -clean重建configures
westwin 2004-12-27
  • 打赏
  • 举报
回复
并且需要指定确切的文件名,而不是指定base name
westwin 2004-12-27
  • 打赏
  • 举报
回复
顶一下,楼上的是换了种方式实现的,呵呵。
westwin 2004-12-27
  • 打赏
  • 举报
回复
即使我把资源文件加入到classpath也不行,up一下
zealVampire 2004-12-25
  • 打赏
  • 举报
回复
FileInputStream fis=new FileInputStream(getServletContext().getRealPath("web.properties"));
ResourceBundle res=new PropertyResourceBundle(fis);

jar的当前工作路径应该是这样得到 String currentPath= System.getProperty("user.dir");
或者你传递你的配置文件路径就可以了 用文件流
westwin 2004-12-24
  • 打赏
  • 举报
回复
因为,我是用来国际化的,
如果把资源文件打进去,不利于国际化的扩展。
华生豆 2004-12-24
  • 打赏
  • 举报
回复
既然不打进去就报错,为何还不打进去呢,奇怪~~~

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧