在Java中使用ResourceBundle类时,我们可以通过属性文件指定目录路径吗?

发布于 2024-09-16 15:14:33 字数 365 浏览 4 评论 0原文

我想将属性文件放在某个文件夹中,但我无法读取它们,因为我们只能在 ResourceBundle 对象上的静态 getBundle() 方法中指定包名称。

假设捆绑包是:myFile.properties
当前路径是:src
我想将我的属性文件保存在:src/temp

所以当我使用:

ResourceBundle.getBundle("temp/myfile", currentLocale);

它抛出一个异常“找不到包”。我想要某种方式来指定路径。请建议我一些方法来做到这一点。

谢谢

I want to place my properties files in some folder, but I am not able to read them because we can specify only the bundle name in static getBundle() method on ResourceBundle object.

Suppose bundle is: myFile.properties
Current path is: src
I want to keep my properties file in: src/temp

So when I am using:

ResourceBundle.getBundle("temp/myfile", currentLocale);

it is throwing an exception "can't find bundle". I want some way to specify the path. Please suggest me some way to do this.

Thank you

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

带上头具痛哭 2024-09-23 15:14:33

使用这个:

ResourceBundle.getBundle("temp.myfile", currentLocale);

ResourceBundle.getBundle 调用中提供的baseName 应该是完全限定的类名。所以必须用点分开书写。另请注意,这会使 temp 成为您的 java 代码中的包(我认为这不是一个好主意)。最好将属性文件放在适当的包中,例如 com.xyz.abc。然后你可以使用它访问它

ResourceBundle.getBundle("com.xyz.abc.myfile", currentLocale);

Use this:

ResourceBundle.getBundle("temp.myfile", currentLocale);

The baseName supplied in the ResourceBundle.getBundle call is supposed to be a fully qualified class name. So it has to be written separated with dots. Also note that this makes temp a package in your java code (which I don't think is a good idea). It is better to put the properties file in a proper package like com.xyz.abc. Then you can access it using

ResourceBundle.getBundle("com.xyz.abc.myfile", currentLocale);
抱猫软卧 2024-09-23 15:14:33

您可能使用了错误的文件名(myfile != myFile)。

对于类路径上的目录 temp 中的文件 myFile.properties,以下代码应该有效:

ResourceBundle.getBundle("temp.myFile");

It is possible that you are using the wrong filename (myfile != myFile).

For a file myFile.properties in a directory temp on the classpath, this code should work:

ResourceBundle.getBundle("temp.myFile");
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文