java.util.MissingResourceException: 找不到包 java.util.PropertyResourceBundle 的资源,密钥
java.util.MissingResourceException: Can't find resource for bundle java.util.PropertyResourceBundle, key
不知道怎么回事
这是我的 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.DISCLAIMER
和 WEBSITE.TITLE
都在同一个属性文件中,但一个在工作,另一个在抛出以下错误:
==>Disclaimer
Resources.ResourceBundle.java:getProperty()
java.util.MissingResourceException: Can't find resource for bundle java.util.PropertyResourceBundle, key WEBSITE.TITLE
请指教我错在哪里?
更新
我注意到当我给出换行符时它工作正常。无法理解为什么资源包没有从 属性 文件的第一行读取?
我发现当我在 属性 文件顶部换行时,它开始工作正常。然后我搜索了为什么 java ResourceBundle 没有读取 属性 文件的第一行并找到了这个 POST。在此post中表示:
The load(Reader) / store(Writer, String) methods load and store
properties from and to a character based stream in a simple
line-oriented format specified below. The load(InputStream) /
store(OutputStream, String) methods work the same way as the
load(Reader)/store(Writer, String) pair, except the input/output
stream is encoded in ISO 8859-1 character encoding.
并且在上述 post 中建议将属性文件的编码更改为 ISO-8859-1。
不知道怎么回事
这是我的 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.DISCLAIMER
和 WEBSITE.TITLE
都在同一个属性文件中,但一个在工作,另一个在抛出以下错误:
==>Disclaimer
Resources.ResourceBundle.java:getProperty()
java.util.MissingResourceException: Can't find resource for bundle java.util.PropertyResourceBundle, key WEBSITE.TITLE
请指教我错在哪里?
更新
我注意到当我给出换行符时它工作正常。无法理解为什么资源包没有从 属性 文件的第一行读取?
我发现当我在 属性 文件顶部换行时,它开始工作正常。然后我搜索了为什么 java ResourceBundle 没有读取 属性 文件的第一行并找到了这个 POST。在此post中表示:
The load(Reader) / store(Writer, String) methods load and store properties from and to a character based stream in a simple line-oriented format specified below. The load(InputStream) / store(OutputStream, String) methods work the same way as the load(Reader)/store(Writer, String) pair, except the input/output stream is encoded in ISO 8859-1 character encoding.
并且在上述 post 中建议将属性文件的编码更改为 ISO-8859-1。