Java 找不到 XML 资源包
Java could not find XML resource bundle
src/java
src/resource/foo/messages.xml
messages_fr.xml
ResourceBundle bundle = ResourceBundle.getBundle("foo.messages", Locale.ENGLISH);
错误:
Exception in thread "main" java.util.MissingResourceException: Can't find bundle for base name foo.messages, locale en
at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1581)
at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1396)
at java.util.ResourceBundle.getBundle(ResourceBundle.java:854)
如果它们是 *.properties,没问题。
如何加载XML个资源包?
默认情况下,Java SE ResourceBundle.getBundle(...)
仅理解作为 Java 类 或“.properties”文件实现的资源包的加载。
如果您想从 XML 文件加载 ResourceBundle
,您需要提供一个自定义 ResourceBundle.Control
实现来实现资源搜索和加载策略。
ResourceBundle.Control
javadocs中有例子;寻找“示例 2”。
我简单地搜索了 XML ResourceBundle
提供商的第 3 方实现,但我找不到任何通用的东西。
(反正求推荐就是off-topic。)
src/java
src/resource/foo/messages.xml
messages_fr.xml
ResourceBundle bundle = ResourceBundle.getBundle("foo.messages", Locale.ENGLISH);
错误:
Exception in thread "main" java.util.MissingResourceException: Can't find bundle for base name foo.messages, locale en
at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1581)
at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1396)
at java.util.ResourceBundle.getBundle(ResourceBundle.java:854)
如果它们是 *.properties,没问题。
如何加载XML个资源包?
默认情况下,Java SE ResourceBundle.getBundle(...)
仅理解作为 Java 类 或“.properties”文件实现的资源包的加载。
如果您想从 XML 文件加载 ResourceBundle
,您需要提供一个自定义 ResourceBundle.Control
实现来实现资源搜索和加载策略。
ResourceBundle.Control
javadocs中有例子;寻找“示例 2”。
我简单地搜索了 XML ResourceBundle
提供商的第 3 方实现,但我找不到任何通用的东西。
(反正求推荐就是off-topic。)