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

标签 java java-9 java-module

我有两个模块: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/

相关文章:

java - Windows cmd中的批处理文件不知道java程序何时终止

java - 从字符串中删除负号

java - 使用 IntelliJ 配置 Tomcat 6

java - JBoss standalone.xml 文件更改被覆盖

java - JPMS 是否支持来自 META-INF/services 的自动模块服务?

java - Kotlin + Java 9 模块 : Module java. 在模块图中找不到基础

java - 如何正确关闭 MappedByteBuffer?

java - JDK9 上的 "package java.net.http does not exist"错误

java - 如何为我的 GeoTools 项目找到正确的 Java 11 模块名称?

java - Vaadin Flow 与模块化 Java 兼容吗?