【问题标题】:Resource Bundle MissingResourceException资源包 MissingResourceException
【发布时间】:2025-12-02 02:25:02
【问题描述】:

我正在尝试添加一个选项来更改程序中的语言,问题是我找不到正确的使用路径,并且一直得到一个

java.util.MissingResourceException:找不到基本名称MenuFactory_pl.properties 的捆绑包,语言环境pl

            Locale locale =new Locale("pl");
            ResourceBundle myResources = ResourceBundle.getBundle("MenuFactory_pl.properties",locale);

我尝试添加包的路径,并将资源包复制到创建的 pacakge java/resource 中,但仍然出现错误。

PIC WITH MORE INFO

【问题讨论】:

  • 以后,请避免包含您的代码截图,而是粘贴实际代码,格式正确,以便社区成员更容易查看代码并提供帮助。还包括完整的错误日志。
  • 任何答案对您有帮助吗? /解决问题?

标签: java resourcebundle


【解决方案1】:

我认为您以不正确的方式指定捆绑包。应该没有后缀 _pl,因为它应该是从您的语言环境中自动添加的。同样,不应该有 .properties 扩展名。这是要遵循的格式(来自下面给出的教程):

ResourceBundle labels = ResourceBundle.getBundle("LabelsBundle", currentLocale);

查看更多关于 Java 的信息:https://docs.oracle.com/javase/tutorial/i18n/resbundle/propfile.html

所以要更改您的语言,您需要更改语言环境,即:

Locale locale = new Locale("pl");
myResources = ResourceBundle.getBundle("MenuFactory",locale);

更多关于语言环境和 i18n 的信息: https://docs.oracle.com/javase/tutorial/i18n/locale/create.html

波兹罗维尼亚

【讨论】:

    【解决方案2】:

    使用

    ResourceBundle.getBundle("com.horstmann.violet.application.MenuFactory",locale)
    

    ResourceBundle.getBundle("com/horstmann/violet/application/MenuFactory",locale)
    

    【讨论】: