关于国际化的一个问题请大家帮忙

我现在将国际化资源文件properties文件放入了jar包里面去了,是不是不能使用
Locale locale=new Locale(infoBean.getLang());
ResourceBundle messages = ResourceBundle.getBundle("src",locale);

这样的代码来根据不同的用户环境获取不同的资源文件了呢?资源文件名为src_XX.properties。

会报 Can't find bundle for base name src, locale zh 这个错误。

请问一下如何做到在jar包中的资源文件也能根据不同的用户来国际化呢?

多谢了!

 

[quote]那是不是说ResourceBundle.getBundle()这个应该不能用于jar中获取资源文件了呢?
谢谢! [/quote]

可以从jar中读取资源文件。关键是,你的J2SE应用,找不到jar包,jar包不在classpath中。。。。

[b]src_XX.properties[/b]

在Jar包中的路径是什么?

[b]假如:src_XX.properties 在jar包中的路径是 aaa/bbb/ccc/src_XX.properties

那么你的程序应该这样调用:[/b]
[code="java"]
ResourceBundle.getBundle("aaa.bbb.ccc.src", locale);[/code]

[b]
1、jar是否引用?

2、jar包中的路径是否正确? 建议解压后,看看路径[/b]

[quote]jar是否应用是什么意思? [/quote]

是否在你的Classpath中?

你的项目是什么样的?WEB?JavaSE?

你把jar包,放在classpath中啊。这样系统就会自动加载jar包了。

[b]
[quote]
JavaSE 项目通过外部输入的jar包地址读取jar包中的配置文件(配置文件中有配置信息),[/quote]

[color=blue]换成Properties,通过流的方式,加载指定jar包中的属性文件(关键是文件名的匹配),然后解析。[/color][/b]