我有两个模块:module-a 和 module-b。 Module-a 有属性文件 (com/foo/texts_en.properties
)。 Module-a 导出 com.foo
包。在 module-b 中我想得到这个资源。为此,我在模块 b 中执行以下操作:
Module moduleA = ClassFromModuleA.class.getModule();
ResourceBundle resourceBundle = ResourceBundle.getBundle("com/foo/texts",
Locale.ENGLISH, moduleA.getClassLoader());
System.out.println("TEST :" + resourceBundle.getString(key);
这是我得到的:
Caused by: java.util.MissingResourceException: Can't find bundle for base name com/foo/texts, locale en
at java.base/java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:2045)
at java.base/java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1679)
at java.base/java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1572)
at java.base/java.util.ResourceBundle.getBundle(ResourceBundle.java:1273)
我的错误是什么?
最佳答案
ResourceBundle 的“命名模块中的资源包”部分提供有关资源在命名模块中的位置的详细信息。
关于java - 如何从 Java 9 中的另一个模块获取 ResourceBundle?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46369101/