6

我在运行应用程序时遇到异常。此应用程序读取 abc.properties 文件,

线程“主”java.util.MissingResourceException 中的异常:找不到基本名称 abc 的包,语言环境 en_US
    在 java.util.ResourceBundle.throwMissingResourceException (ResourceBundle.java:853)
    在 java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:822)
    在 java.util.ResourceBundle.getBundle(ResourceBundle.java:566)
    在 com.ibm.dst.DailyExtract.getResourceBundle(DailyExtract.java:104)
    在 com.ibm.dst.DailyExtract.main(DailyExtract.java:131)

abc.properties 文件驻留在工作区中。我使用 RSA7 作为 IDE,有什么设置问题吗?欢迎任何建议......

非常感谢提前

4

6 回答 6

13

按照这篇文章中的提示,看看你是否犯了其中一个错误,可能是(从链接复制粘贴):

  1. 这些资源属性文件由类加载器加载,类似于 java 类。所以你需要将它们包含在你的运行时类路径中。

  2. 这些资源具有完全限定的资源名称,类似于完全限定的类名称,摘录您无法将资源导入 java 源文件。为什么?因为它的名字采用字符串的形式。

  3. ResourceBundle.getBundle("config")告诉类加载器使用默认包(即没有包)加载名为“config”的资源。这并不意味着当前包中具有引用类的资源。

  4. ResourceBundle.getBundle("com.cheng.scrap.config")告诉类加载器使用包“com.cheng.scrap”加载名为“config”的资源。它的完全限定资源名称是“com.cheng.scrap.config”

于 2010-04-14T10:27:34.533 回答
3

You just need to add the package name while getting the file

For example if your properties name is "ABC.properties" in package a.b.c then the below code will work perfectly

ResourceBundle labels = ResourceBundle.getBundle("a.b.c.ABC");
于 2012-11-21T08:38:28.560 回答
2

只需将资源文件复制到您的类文件所在的位置即可。

就我而言,我的目录是:

bin 
  - com 
     - brookf 
        - all my packages here. 

将您的资源文件复制到 bin 文件夹。

于 2016-07-26T13:00:34.727 回答
1

我今天遇到了同样的问题,我花了一段时间才找到解决办法(我使用 Eclipse 作为 IDE)。我的项目文件夹包含以下路径中的 *.properties-Files:

project/src/strings

由于字符串是 src 的子文件夹,并且 src 已经在项目的构建路径中(请参阅属性窗口),所以我只需要为 *.properties-Files 添加一个包含模式:

**/*.properties

*.java-Files (**/*.java) 应该已经有一个包含模式

也许您的 IDE 有类似的东西

于 2014-10-21T22:19:27.960 回答
1

为本地化内容加载属性文件也受包命名的影响。如果您将 Properties 文件放在一个类似的包中org.example.com.foobar并仅按其名称加载它,则abc您也必须添加 prefix org.example.com.foobar。如果您在不同的位置(例如在根目录或另一个子目录中)拥有属性,则必须更改要加载的名称或类路径。

我在将属性文件放置在文件所在的同一位置.java并使用类似的东西时运行良好

private static ResourceBundle RES = ResourceBundle.getBundle(NameOfTheCurrentClass.class.getCanonicalName());
于 2010-04-14T10:31:16.850 回答
0

该文件在您的类路径中吗?如果是,请尝试将其重命名为 abc_en_US.properties

于 2010-04-14T10:28:52.893 回答