猿问

Java ResourceBundle.getBundle如何加载属性文件?

我花了一些时间尝试加载属性文件,但找不到任何有效的解决方案。这是我的设置图片。

属性文件位置:/sandbox/resources/properties/MessageBundle_en_US.properties

应用位置:/sandbox/src/main/java/com/app/sandbox/App.java

不确定发生了什么。我尝试了几种组合,但它只是无法超越异常。我甚至试过了文件夹的整个路径。谁能告诉我ResourceBundle.getBundle()方法如何查找属性文件?

更新1:此解决方案在几分钟后停止工作:

ResourceBundle mybundle = ResourceBundle.getBundle("MessageBundle");

更新2:上次解决方案在我上次运行期间不再有效。所以我改成了:

ResourceBundle mybundle = ResourceBundle.getBundle("properties/MessageBundle");

它奏效了。似乎可能存在ResourceBundle如何查找属性文件的缓存问题。

我仍然不确定ResourceBundle类如何查找属性文件。它表示要传递“baseName”参数:

baseName - the base name of the resource bundle, a fully qualified class name

https://docs.oracle.com/javase/7/docs/api/java/util/ResourceBundle.html#getBundle(java.lang.String)

但目前尚不清楚它是如何开始寻找文件的。它是从项目目录的根开始查找的吗?如果有人能回答这个问题,那就太好了。完全限定的类名是什么意思。我不认为“properties.MessageBundle”是完全合格的。


慕侠2389804
浏览 3219回答 2
2回答

慕斯王

尝试使用如下;ResourceBundle bundle = ResourceBundle.getBundle("properties/MessageBundle");
随时随地看视频慕课网APP

相关分类

Java
我要回答