我应该在哪里找到要由java.util.ResourceBundle加载的资源?

时间:2013-09-06 11:29:39

标签: java

我遇到了这段代码

  

ResourceBundle BUNDLE = ResourceBundle.getBundle(“a.b.c.d.E”);

我想知道我在哪里可以找到要加载的文件?我在磁盘上找不到文件 a.b.c.d.E

1 个答案:

答案 0 :(得分:1)

来自ResourceBundle的getBundle文档:

* .... getBundle然后迭代候选包名称以找到它可以实例化实际资源包的第一个。对于每个候选包名称,它会尝试创建资源包:

首先,它尝试使用候选包名称加载类。如果可以使用指定的类加载器找到并加载这样的类,与ResourceBundle兼容的赋值,可从ResourceBundle访问,并且可以实例化,则getBundle创建此类的新实例并将其用作结果资源包。

否则,getBundle会尝试查找属性资源文件。它通过替换所有“。”从候选包名称生成路径名。带有“/”的字符并附加字符串“.properties”。它尝试使用ClassLoader.getResource查找具有此名称的“资源”。 (请注意,getResource意义上的“资源”与资源包的内容无关,它只是数据的容器,例如文件。)如果找到“资源”,它会尝试创建来自其内容的新PropertyResourceBundle实例。如果成功,则此实例将成为结果资源包。*

所以我从中理解的是:如果你的

a.b.c.d.E

不是类,然后它将查找带路径

的属性文件
a/b/c/d/E.properties