当使用fastdfs-client类进行图片上传时,遇到一个异常:
Exception in thread "main" org.csource.common.MyException: item "tracker_server" in /C:/Users/一个中文名/IdeaProjects/xxx/target/classes/tracker.conf not found
这样一个错误,源代码如下:
**分析原因:**从当前类所在路径获取资源配置文件所在的绝对路径,因为我的这个绝对路径中有中文,所以读取后会进行转译,然后调用ClientGlobal的静态方法进行初始化,又因为java对路径进行转译,使得传递过去的configFile实际是转译过后的内容,使得iniReader为null,后面的字段为null,走到地方抛异常
本人在这里一开始使用的是绝对路径进行暂时解决、
总结:建议是项目里不要有中文路径,本人在Windows环境下使用IDEA的默认工作空间,电脑用户名是中文才出现这个异常,一般是不会出现的
补充:
百度N久,找到解决方案:
1.对获取到的configFile进行一次解码:
String configFilePath =java.net.URLDecoder.decode(configFile,“utf-8”);
2.在获取到resource资源后,先获取URI,再获取path路径
String configFilePath = this.getClass().getResource("/tracker.conf").getPath();
解决方案来源: https://blog.csdn.net/WinstonLau/article/details/90205141