如何在NetBeans 12中开发i18n Web应用并解决资源包缺失报错
问题解决方案
1. 确认资源文件存放路径
Maven项目默认仅会将src/main/resources目录下的文件编译至classpath中,你指定的base name为demo.test,对应资源文件需要满足:
- 资源文件存放在
src/main/resources/demo目录下 - 法语区资源文件命名严格为
test_fr_FR.properties,大小写敏感,无拼写错误
如果你的资源文件放在Java源码目录(如src/main/java/demo下),Maven默认不会打包properties后缀的文件,需要在pom.xml中添加资源扫描配置:
<build> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.properties</include> </includes> </resource> <resource> <directory>src/main/resources</directory> </resource> </resources> </build>
2. 验证资源加载逻辑
可以先修改代码测试默认资源包是否能正常加载,排除路径配置问题:
// 移除locale参数,测试默认资源包加载 ResourceBundle myBundle = ResourceBundle.getBundle("demo.test");
如果默认资源包可正常加载,仅fr_FR locale加载失败,说明对应法语资源文件缺失或命名错误。
3. 显式指定类加载器
主类运行时可能存在类加载器路径匹配问题,可以修改代码指定上下文类加载器加载资源:
ResourceBundle myBundle = ResourceBundle.getBundle("demo.test", locale, Thread.currentThread().getContextClassLoader());
4. 检查编译输出
执行mvn compile命令后,查看项目target/classes目录下是否存在demo/test_fr_FR.properties文件,如果文件不存在,回到第一步核对路径和pom配置。
内容的提问来源于stack exchange,提问作者bib
相关产品推荐
相关产品推荐

