You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java国际化开发中properties配置文件的正确存放位置是什么?

Java国际化MissingResourceException报错原因及解决方案

报错原因

1. 拼写匹配错误

你抛出的异常提示找不到base name为messages的资源,但你代码中ResourceBundle.getBundle的第一个参数写的是MessagesBundle,首先确认实际运行的代码中该参数是否拼写错误,参数值需要和配置文件的前缀MessagesBundle完全一致,大小写敏感。

2. 资源路径不匹配

如果拼写无误,错误来源于资源加载路径的规则限制:
ResourceBundle.getBundle传入纯文件名时,默认从项目编译后的类路径根目录查找配置文件,你把properties文件放在了tests包对应的子目录下,不属于类路径根目录,因此无法被加载到。

正确的配置文件存放方案

你可以选择以下任意一种方案解决问题:

  • 方案1:配置文件放类路径根目录
    保持代码中getBundle("MessagesBundle")的写法不变,将所有MessagesBundle_xx_XX.properties文件放到项目类路径根目录即可。如果是Maven/Gradle项目,对应路径为src/main/resources;普通Java项目放在编译后class文件生成的根目录,和tests文件夹同级。
  • 方案2:配置文件保留在tests包目录下
    如果你要把配置文件和I18NSample类放在同一个包路径下,需要修改getBundle的参数,加上包路径前缀:
    messages = ResourceBundle.getBundle("tests.MessagesBundle", currentLocale);
    

额外注意:确认你的项目构建配置不会过滤掉properties文件,所有properties文件需要被正常复制到编译后的输出目录才能被加载。

内容的提问来源于stack exchange,提问作者cover

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.20 12:06:08