IntelliJ 2022.2.1中PropertyResourceBundle资源包找不到问题求助
解决ResourceBundle找不到资源包的问题
一、Java ResourceBundle查找核心规则
- 基于**类路径(classpath)**查找,而非项目文件系统的外部路径
- 包路径分隔符用
.代替/,比如Language.Login对应classpath下Language/Login.properties文件 - 文件名与bundle名称大小写严格匹配(Java大小写敏感),例如bundle名是
Login则文件必须是Login.properties,不能是login.properties - 资源文件必须放在被标记为资源根目录的文件夹下,编译时才会被复制到classpath中
二、针对你的问题的具体修复步骤
1. 修正代码中的bundle名称
将涉事代码行:
rb = ResourceBundle.getBundle("Language/Login", Locale.getDefault());
改为对应格式:
// 若文件名为Login.properties(首字母大写) rb = ResourceBundle.getBundle("Language.Login", Locale.getDefault()); // 若文件名为login.properties(首字母小写) rb = ResourceBundle.getBundle("Language.login", Locale.getDefault());
2. 配置IntelliJ 2022.2.1的资源根目录
- 打开
Project Structure(快捷键:Ctrl+Alt+Shift+S) - 选择
Modules-> 你的项目模块 ->Sources标签页 - 找到存放
login.properties的文件夹,右键点击选择Mark Directory as->Resources Root - 确认该文件夹显示为蓝色图标后保存配置
3. 验证编译后的资源状态
编译项目后,前往对应目录确认资源文件是否被正确复制:
- Maven/Gradle项目:
target/classes/Language/ - 普通Java项目:
out/production/classes/Language/
若找不到对应.properties文件,说明资源目录配置错误或文件名大小写不匹配。
三、IntelliJ 2022.2.1相关参考资料
直接在IntelliJ的Help菜单中搜索以下关键词即可获取官方文档:
- "Resource Bundles"(资源包管理)
- "Configuring Module Sources"(模块源目录配置)
内容的提问来源于stack exchange,提问作者sphipps
相关产品推荐
相关产品推荐

