【Java】问题——ResourceBundle读取文件时出现的问题

article/2025/9/22 19:36:24

ResourceBundle读取文件时出现的问题

问题产生 

接手的一个运维项目代码写的乱,看到连接数据库信息直接写在class文件里面,不易管理,就是顺手写个wfc_config.properties文件,专门去存储相关的配置信息。整理好信息之后更新到服务器上就报错Can't find bundle for base name,如图所示:

可能的原因

1.可能是文件位置不对(第一次尝试解决,未成功)

ResourceBundle读取的文件位置在项目的src文件下,编译过后在Classes文件下面,但是我的文件就是在classes文件下面啊,所以这种方法不能解决此问题;

2.文件编码问题(第二次尝试解决,未成功)

通过查资料,ResourceBundle读取的properties文件的编码应该是ISO-8859-1,在更新的时候我更改过文件内容,可能保存为别的编码模式,然后我就看本地的文件就是ISO-8859-1,在本地改过之后再更新到服务器上面(保证文件的编码不会改变),但是还是没有解决问题,依然是同样的问题,说明这个跟编码没关系;

另注:当时在服务器上的文件编码类型是UTF-8,不太懂UTF-8和ISO-8859-1区别,就去补习了一下区别,简言之,UTF-8兼容ISO-8859-1,所有properties用UTF-8也是没问题(前提是没用中文把??【存疑】)

(补习链接:Unicode、UTF-8 和 ISO8859-1到底有什么区别 - 寻水的小鱼 - 博客园)

3.文件内容上的问题(第三次尝试解决,成功)

这个问题应该只是出现在我这个特殊情况上的。

百思不得其解之后求教同事,同事看了输出觉得可能打印的日志里面缺失了异常,建议我先把异常打印出来看看,我打印出异常之后发现了问题的所在:

输出忘记截图了,报出异常:java.lang.IllegalArgumentException: Malformed \uxxxx encoding

properties中不能含有\符号.  只要遇到就会报上面的错误.

问题解决!

总结

这代码有点早了,当时还没用log,异常被吃了...解决问题时候没想到这个方向,看之前的输出一直以为文件位置或者是文件编码问题,我用logger把异常给打印出来了,解决了,和路径编码没关系,是因为文件中的地址不能用\  要用 \\ 写地址的时候疏忽了

或者  最好使用“/",linux\windows通用

在这个问题上,学到最多的不是文件地址写法问题,而是要多用log输出异常,不能让异常被吃了!!!


http://chatgpt.dhexx.cn/article/NtWdQSAQ.shtml

相关文章

ResourceBundle.getBundle()从哪里查找配置文件

ResourceBundle.getBundle()方法会在classpath中寻找配置文件,而在idea中一个模块的classpath不是src目录,而是位于out/product/相应模块目录下。 比如JDBC-test模块的classpath 不是 C:\Users\Administrator\IdeaProjects\javaExercise\JDBC-test\src&a…

ResourBundle.getBundle方法

import java.util.Locale; import java.util.ResourceBundle;public class Main {public static void main(String[] args) {//对于读取properties文件,我们可以使用Properties和ResourceBundle这两个类//但不同的是,ResourceBundle可以实现实现配置文件…

java之ResourceBundle类详细分析(全)

目录 前言1. 配置文件2. 方法3. 实战 前言 主要的作用: 当程序需要一个特定于语言环境的资源时(如 String),程序中可从当前的用户环境资源包中加载它。使得编写在很大程序上只是独立于当前的用户环境,将资源包中大部分…

ResourceBundle.getBundle读取资源文件的路径

我想用ResourceBundle.getBundle()来读取我自定义的一个hbase.properties配置文件,代码如下: public class CreateHbaseTableDemo {public static void main(String[] args) {ResourceBundle resourceBundle ResourceBundle.getBundle("hbase.properties");String p…

ResourceBundle.getBundle()方法

这个方法是从properties文件中获取值 drivercom.mysql.jdbc.Driver urljdbc:mysql://localhost:3306/db_hualian?useSSLfalse&serverTimezoneUTC&characterEncodingGBK usernameroot passwordroot 注意: properties文件必须放在被标记为Resource Root的文件夹之下。 …

【Java类001】用ResourceBundle类实现资源文件本地化

ResourceBundle类:资源绑定类 功能:根据指定的文件名和本地化信息(语言代码,国别代码),找到对应的properties文件,获取文件内容。 properties文件名的命名规范:文件名_语言代码_国别…

Java国际化——ResourceBundle基本使用

背景:企业项目中,往往面对国际的。针对不同地区语言,ResourceBundle主要用来处理本地化资源和国际化资源的问题,向用户展示合理的界面显示。 ResourceBundle 官方解释:一堆有着相同前缀名称但有着不同语言后缀名称的…

JAVA中ResourceBundle使用详解(一)

最近在看HttpServlet源码时候,碰到ResourceBundle的使用,就此记录一下。 一、ResourceBundle是啥 在package java.util;下 这个类主要用来解决国际化和本地化问题。国际化和本地化是啥,另一篇文章有写,这里直接上用法。 这个类…

JAVA中ResourceBundle使用详解

JAVA中ResourceBundle使用详解 这个类主要用来解决国际化和本地化问题。国际化和本地化可不是两个概念,两者都是一起出现的。可以说,国际化的目的就是为了实现本地化。比如对于“取消”,中文中我们使用“取消”来表示,而英文中我…

突发!PHP服务器被攻击,恶意代码合入git仓库

本文转载自 新智元 PHP的git服务器被攻击了,合入了两个恶意commit,nikic发信称将迁移仓库到GitHub上。代码中竟然包括「Zerodium」,莫非背后有什么交易? PHP的一名贡献者Nikita Popov (网名nikic)公开发信称,php的gi…

搭建自己个人服务器

很高兴能够跟大家分享我写的这篇文章! 搭建自己的个人服务器主要分为三步,分别为1、通过腾讯云或者阿里云、华为云等购买云服务器,2、申请域名并解析,3、开发自己程序或者前后端之类的部署在服务器 1、通过腾讯云或者阿里云、华…

PHP - 如何下载服务器上的文件

1.应用场景 需要将服务器上的文件,下载到客户端(浏览器) 补充场景: PHP如何下载远程服务器上的文件到本地服务器 2.学习/实践 1. 文档 请教PHP如何下载远程服务器上的文件到本地服务器上-php教程-PHP中文网 2. 整理输出 方式有…

PHP获取当前服务器版本,Ip等详细信息

新做的一个项目后台几乎完了,简单加了一个获取服务器详情的页面,记录一下,留着备用! 服务器IP地址 $_SERVER[SERVER_ADDR]服务器域名 $_SERVER[SERVER_NAME] 服务器端口 $_SERVER[SERVER_PORT]服务器版本 php_uname(s).php_unam…

微信小程序之PHP服务器搭建

在去年的时候,参加过学校的一个创业活动,在团队决定做一个关于图书的微信小程序以后,我负责做微信小程序的后台程序,因为初次接触,决定选用较为简单的PHP作为后台语言,实现了微信小程序的一些基本功能&…

【树莓派】搭建LAMP(Linux Apache Mysql PHP)服务器

基于树莓派搭建LAMP(Linux Apache Mysql PHP)服务器 配置树莓派 树莓派 连接WIFI 配置SSH 连接SSH 修改密码并解锁root用户 固定IP 调整服务器性能 Apache Mysql PHP 内网穿透 本文主要介绍了树莓派购买后的配置方法,并在树莓派上搭建LAMP&am…

PHP分布式部署代码同步Git实现

PHP 分布式部署后 代码自动同步实现 项目架构如下: 需要更新代码时我们只需要把代码传到主服务器后通过定时任务主服务器自动push 代码到Git服务端,之后其他从服务器则自动从Git云端拉取最新的代码即可 需要用到 expect 软件 安装expect yum install expect定时push shell…

大部分PHP程序员,都搞不懂如何安全代码部署

总结 1.创建一个普通用户账户 2.先设置所有文件夹为只读不可写 sudo chmod -R a-w /path/to/directory3.再把php执行的用户组加上 sudo chown -R username:groupname /path/to/php/files4.再把可执行的文件加入 sudo chmod -R 755 /path/to/php/files关于权限 理清PHP在Lin…

PHP项目部署到云服务器(CentOS+HTTP+PHP+MYSQL)

如何将写好的项目部署到云服务器,让外界可以通过互联网访问项目网站。以下使用的是腾讯云服务器操作,系统环境为CentOS7.9。 一、购买云服务器 打开腾讯云官网,注册好自己的平台账号。如果是新人的话去新人专区购买服务器,性价比…

phpstudy搭建nginx+php服务器显示php网页

下载了phpstudy-all.bin一键安装包,管理员执行./phpstudy-all.bin安装完成后,在火狐浏览器上输入:localhost 测试服务器是否从成功。 遇到的问题: 默认打开的web页面是/usr/share/nginx/www/index.html页面,如下 初次尝试解决&a…

php如何启动内置web服务器

前言: PHP从5.4开始,就提供了一个内置的web服务器。 当然这个主要是用来做本地的开发用的。 不能用于线上环境。 现在我就介绍一下这个工具如何使用。 前提: php已经加入到本地电脑的环境变量中 命令中输入: cd 项目目录 php -S…