java.util.MissingResourceException

我在运行应用程序时遇到exception。 这个应用程序读取了abc.properties文件,

线程“main”中的exceptionjava.util.MissingResourceException:无法在java.util.ResourceBundle.getBundleImpl(ResourceBundle。)的java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:853)中找到基本名称abc,locale en_US的包。 java:822)at java.util.ResourceBundle.getBundle(ResourceBundle.java:566)at com.ibm.dst.DailyExtract.getResourceBundle(DailyExtract.java:104)at com.ibm.dst.DailyExtract.main(DailyExtract.java) :131) 

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

非常感谢提前

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

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

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

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

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

您只需在获取文件时添加包名称即可

例如,如果您的属性名称是包abc中的“ABC.properties”,那么下面的代码将完美地工作

 ResourceBundle labels = ResourceBundle.getBundle("abcABC"); 

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

在我的情况下,我的目录是:

 bin - com - brookf - all my packages here. 

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

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

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

 private static ResourceBundle RES = ResourceBundle.getBundle(NameOfTheCurrentClass.class.getCanonicalName()); 

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

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

 project/src/strings 

由于strings是src的子文件夹,src已经在项目的构建路径中(参见Property Window),我所需要的只是为* .properties-Files添加一个包含模式:

 **/*.properties 

应该已经存在* .java-Files的包含模式(** / * .java)

也许你的IDE有类似的东西