我花了一些时间尝试加载属性文件,但找不到任何有效的解决方案。这是我的设置图片。
属性文件位置:/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”是完全合格的。
慕斯王
相关分类