如何从Java 9中的另一个模块获取ResourceBundle?

Pav*_*l_K 5 java java-9 java-module

我有两个模块:模块a和模块b。模块-a具有属性文件(com/foo/texts_en.properties)。Module-a出口com.foo包装。在模块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);
Run Code Online (Sandbox Code Playgroud)

这是我得到的:

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)
Run Code Online (Sandbox Code Playgroud)

我怎么了

Ala*_*man 1

ResourceBundle的“命名模块中的资源包”部分提供了有关如何定位命名模块中的资源的详细信息。

  • 您的答案应引用相关部分。否则这看起来更像是一个仅链接的答案。 (3认同)