【问题标题】:java.util.MissingResourceException: Can't find resource for bundle java.util.PropertyResourceBundle, keyjava.util.MissingResourceException:找不到资源包 java.util.PropertyResourceBundle,键
【发布时间】:2017-05-26 17:58:46
【问题描述】:

我不知道发生了什么。
这是我的 Titles_en_US.properties 文件:

WEBSITE.TITLE       = Hello World       

FOOTER.DISCLAIMER       = Disclaimer
FOOTER.TERMS_OF_USE     = Terms of Use
FOOTER.PRIVACY_POLICY   = Privacy Policy

这是我的方法:

private String getTitle() throws Exception {    
    System.out.println("\n\n==>"+getProperty("FOOTER.DISCLAIMER",LabelsFile()));
    return getProperty("WEBSITE.TITLE", LabelsFile());
}   

FOOTER.DISCLAIMERWEBSITE.TITLE 在同一个属性文件中,但一个正在工作,另一个正在抛出以下错误:

==>Disclaimer
Resources.ResourceBundle.java:getProperty()
java.util.MissingResourceException: Can't find resource for bundle java.util.PropertyResourceBundle, key WEBSITE.TITLE

请告知我哪里出错了?

更新
我注意到,当我换行时,它工作正常。无法理解为什么资源包没有从属性文件的第一行读取?

【问题讨论】:

  • 避免键中的空格
  • 键中没有空格而是点
  • 在键和=符号之间?
  • key 和 = 符号之间的空格无关紧要
  • 祝你好运,Ghayel ;-)

标签: java servlets resourcebundle


【解决方案1】:

我发现当我在我的属性文件顶部换行时,它开始正常工作。然后我搜索了为什么 java ResourceBundle 没有读取属性文件的第一行并找到了这个POST。在这篇文章中说:

load(Reader) / store(Writer, String) 方法加载和存储 一个简单的基于字符的流的属性 下面指定的面向行的格式。负载(输入流)/ store(OutputStream, String) 方法的工作方式与 load(Reader)/store(Writer, String) 对,除了输入/输出 流采用 ISO 8859-1 字符编码进行编码。

并且在上述帖子中还建议将属性文件的编码更改为 ISO-8859-1。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-13
    • 2019-01-01
    • 1970-01-01
    • 2013-12-18
    相关资源
    最近更新 更多