java:java.util.MissingResourceException: Cant find bundle for base name解决方式

news2024/11/16 11:52:22

java:java.util.MissingResourceException: Cant find bundle for base name解决方式

1 前言

代码执行如下:

ResourceBundle.getBundle("res.Message",
                Locale.getDefault(), ReadMyProps.class.getClassLoader());

ResourceBundle.getBundle("res.Message",
        new Locale("zh", "CN"), ReadMyProps.class.getClassLoader());

报错:

Exception in thread "main" java.util.MissingResourceException: 
Can't find bundle for base name MyConfig, locale zh_CN
	at java.util.ResourceBundle.throwMissingResourceException
	(ResourceBundle.java:1581)
	at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1396)
	at java.util.ResourceBundle.getBundle(ResourceBundle.java:854)

2 解决

因为ResourceBundle.getBundle是从classpath路径下读取资源,即target-classes目录下(或者lib),资源文件需放在resources目录下,如果resouces目录下有文件夹目录,那么资源文件名称带上目录即可,并且资源文件名后缀需为properties,但是getBundle的baseName参数不要带上后缀.properties,否则也会抛出MissingResourceException,正确示例如下:

ResourceBundle bundle = ResourceBundle.getBundle("res.Message",
        Locale.getDefault(), ReadMyProps.class.getClassLoader());
String myName = bundle.getString("MyName");
System.out.println(myName);
String myAge = bundle.getString("myAge");
System.out.println(myAge);
String msg = bundle.getString("Message");
System.out.println(msg);
String nullable = bundle.getString("nullable");
System.out.println("[" + nullable + "]");

resources目录下资源文件:

在这里插入图片描述

Message.properties:

MyName=xiaoxu
myAge=12
Message=this is error here: '{0}', please check: {1}
nullable=

执行结果:

xiaoxu
12
this is error here: '{0}', please check: {1}
[]

bundle资源文件新建,file,后缀为.properties:

在这里插入图片描述

或者,使用Resource Bundle新建:

在这里插入图片描述

如果采用上述方式仍然报错:MissingResourceException: Can’t find bundle for base name,那么需要检查资源文件是否在target-classes目录中存在。

可以使用maven的clean先清除.class二进制文件(target-classes全部清除),然后再次执行compile编译,重新生成resources下的资源文件(src/main/java下的properties文件不会存于target-classes中,所以properties文件需要放在resources目录下,才可以读取到,当然项目类的.class文件也会生成):

在这里插入图片描述
如下可见,resources目录下res中的资源文件重新编译生成成功(src/main/java里面的properties资源文件不会在target.classes.com目录下生成,故可知直接main执行是读取不到的),那么确定该文件存在的情况下,再次执行成功:

在这里插入图片描述

重新编译后执行结果:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1035092.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

WPF Panel笔记

1、StackPanel默认垂直排列,不会自动换行,展示可能不全。改变内元素的排列方式,需要用orientation属性 2、wrapPanel默认横向排列,会自动换行。改变内元素的排列方式,需要用orientation属性。 3、DockPanel默认属性&am…

获取文件上次访问时间

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl Java源码 public void testGetFileTime() {try {String string "E://test.txt";File file new File(string);Path path file.toPath();BasicFileAttributes ba…

07_ElasticSearch:倒排序索引与分词Analysis

07_ElasticSearch:倒排序索引与分词Analysis 一、 倒排索引是什么?1.1 通过示例,简单理解下1.2 核心组成 二、倒排索引是怎么工作的?2.1 创建倒排索引2.2 倒排索引搜索 三、Analysis 进行分词3.1 Analyzer 由三部分组成3.2 Analyz…

ARP协议-介于数据链路层和网络层之间的协议

通过上一篇 IP协议 我们知道 目标IP目标网络 目标主机 🙋‍ 也就是说 必须知道 接收方的接收方的 MAC地址 > 没有MAC地址无法封装 MAC帧 在网络层,我们可以知道目标主机的 IP 地址, 但是 我们不知道对方的MAC地址 。 在同一个网段&…

Win10安装Docker Desktop并运行Tutorial示例

背景 前段时间一个项目需要在开发环境直接使用 Docker ,为了省事便计划在本地安装 Desktop 版的 Docker 。其实安装过程比较简单,可视化安装即可,主要是对安装与初步使用时遇到的问题做个记录。 下载安装 下载地址:https://dow…

体验facechain

安装Anaconda 下载页面:https://www.anaconda.com/download/ Clone代码仓 git clone https://github.com/modelscope/facechain.git --depth 1 GIT_LFS_SKIP_SMUDGE1安装依赖 cd ./facechain pip install -r requirements.txt pip install -U openmim 运行 修改…

【C++代码】找树左下角的值,路径总和,从中序与后序遍历序列构造二叉树,从前序与中序遍历序列构造二叉树--代码随想录

题目:找树左下角的值 给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的值。假设二叉树中至少有一个节点。 题解 使用 height 记录遍历到的节点的高度,curVal 记录高度在 curHeight 的最左节点的值。在深度优先搜索时&a…

获取文件最后修改时间

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl Java源码 public void testGetFileTime() {try {String string "E://test.txt";File file new File(string);Path path file.toPath();BasicFileAttributes ba…

第P6周—好莱坞明星识别(2)

五、模型训练 # 训练循环def train(dataloader, model, loss_fn, optimizer):size len(dataloader.dataset) # 训练集的大小num_batches len(dataloader) # 批次数目train_loss, train_acc 0, 0 # 初始化训练损失和正确率for X, y in dataloader: # 获取图片及其标签X…

定制化精准推送与用户分组策略:数智营销的硬技能

对于移动应用开发者和运营者而言,推送是保持良好客户互动,实现用户裂变增长的重要方式,在实际推送服务设计中,往往会根据不同的需求和应用场景,针对性的选取特定对象发送特定内容的推送。具体而言,主流的智…

【C刷题】day3

一、选择题 1、已知函数的原型是: int fun(char b[10], int *a); ,设定义: char c[10];int d; ,正确的调用语句是( ) A: fun(c,&d); B: fun(c,d); C: fun(&c,&d); D: fun(&c,d); 【答案…

大模型应用发展的方向|代理 Agent 的兴起及其未来(下)

“ 借助LLM作为代理大脑的优势,探讨了单一代理、多代理系统和人机协作等应用场景,探讨了代理的社会行为、心理活动以及在模拟社会环境中观察新兴社会现象和人类洞见的可能性。” 01 — 造福人类:代理实践 LLM型智能代理是一种新兴的方向&…

【51单片机实验笔记】LED篇(二)多色LED的基本控制

目录 前言硬件介绍双色LED三色LED七彩自动闪烁LED 接线图面包板介绍直插电阻介绍色环解析 双色LED实际接线图三色LED实际接线图七彩自动闪烁LED实际接线图 软件实现双色LED交替闪烁三色LED灯交替闪烁 总结 前言 本节内容我们学习了解一些多色LED的显示原理及驱动方式。 本节涉…

Pytorch---空间特征金字塔SPP模块的实现

文章目录 一、SPP模块二、使用pytorch实现 一、SPP模块 SPP模块是指定空间特征金字塔模块,是由何凯明在2014年的论文中所提出的。 论文地址如下: 论文地址 该模块的主要作用是:在分类网络中,通过分类器之后,与全连接…

stack与queue的简单封装

前言: stack与queue即栈和队列,先进后出/先进先出的特性我们早已了然于心, 在学习数据结构时,我们利用c语言实现栈与队列,从结构体写起,利用数组或指针表示他们的数据成员,之后再一个个实现他们…

Linux 故障定位手段之保存某个时间段内的top结果

在Linux中对故障原因进行定位时,除了查看对应的软体运行日志、OS运行日之外,还可以查看 top 的资源消耗结果。 参考语句: 以CPU为基准列进行排序记录TOP结果 nohup top -d 1 -b -o %CPU | tee -a /tmp/cpu.txt & 语句含义:每…

etc目录下的profile.d文件目录设置环境变量和全局脚本

一、设置环境变量 etc目录下的profile.d文件目录 /etc/profile.d 1、编写 vi test.sh文件内容 # jdk变量 export ZHK_HOME/root export PATH$PATH:$ZHK_HOME/test # 可以取出来ZHK_HOME变量给ZZZ_HOME赋值 export ZZZ_HOME${ZHK_HOME}/test2、刷新 执行source /etc/profile …

34.CSS魔线图标的悬停效果

效果 源码 index.html <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Icon Fill Hover Effects</title> <link rel="stylesheet" h…

【深度学习实验】前馈神经网络(final):final

目录 一、实验介绍 二、实验环境 1. 配置虚拟环境 2. 库版本介绍 三、实验内容 0. 导入必要的工具包 1. 构建数据集&#xff08;IrisDataset&#xff09; 2. 构建模型&#xff08;FeedForward&#xff09; a. __init__(初始化) b. forward(前向传播) 3.整合训练、评估…

Mojo:新型AI语言中的7个令人惊叹的Python升级,用简单的英语解释人工智能

Mojo&#xff1a;新型AI语言中的7个令人惊叹的Python升级 编程之美 用简单的英语解释人工智能 编程之美 由Coding Beauty设计的图像&#xff0c;使用Mojo标志和Python标志。 它比C更快&#xff0c;与Python一样简单&#xff0c;但速度提高了35000倍。 进入Mojo&#xff1a;一种…