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

NetBeans Maven项目报MissingResourceException找不到资源包如何解决?

Maven项目ResourceBundle找不到资源包解决方案
  • 第一步:确认资源文件是否被正确打包到classpath
    Maven默认会将src/main/resources目录下的所有文件复制到编译输出的target/classes目录下,你可以先执行mvn clean compile命令,查看target/classes根目录下是否存在xxx.properties和xxx_en_US.properties文件。
    如果文件不存在,检查你的pom.xml中是否有自定义的<resources>配置覆盖了默认规则,如果有需要添加如下配置确保资源目录被正确识别:
    <build>
      <resources>
        <resource>
          <directory>src/main/resources</directory>
          <includes>
            <include>**/*.properties</include>
          </includes>
        </resource>
      </resources>
    </build>
    
  • 第二步:确认资源包baseName写法正确
    如果你的properties文件直接放在src/main/resources根目录,getBundle的参数写"xxx"是正确的。如果文件放在src/main/resources下的子目录,比如src/main/resources/com/example/config/xxx.properties,则参数需要写为全路径格式"com.example.config.xxx"。
  • 第三步:检查文件名规则是否符合要求
    确认文件名拼写完全匹配,大小写、特殊符号无错误,后缀为.properties(注意不要出现系统隐藏后缀导致文件名实际为xxx.properties.txt的情况),locale标识格式正确为xxx_语言代码_国家代码.properties,xxx_en_US.properties本身的格式是符合要求的。
  • 第四步:指定类加载器读取资源
    部分场景下默认的ResourceBundle类加载器无法读取到当前项目的资源,可以修改读取代码指定当前类的类加载器:
    java.util.ResourceBundle bundle = java.util.ResourceBundle.getBundle("xxx", java.util.Locale.US, YourCurrentClass.class.getClassLoader());
    
    把YourCurrentClass替换为你当前写这段代码的类名即可。
  • 第五步:排查类加载路径
    可以在读取资源前添加代码打印当前类加载器的根路径,确认资源文件是否在该路径下:
    System.out.println(YourCurrentClass.class.getClassLoader().getResource("").getPath());
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 15:57:03