linux环境文件路径中多个斜杠就出错

上官凝轩2017 2017-03-02 09:41:32
最近排查一个错误,找了大半天才找到了问题所在。开发环境是win 7,而测试服务器环境是Linux,在本机测试怎么都是正常,部署到测试服务器之后就怎么都不行。原来是配置文件中一个参数最后多了一个/,java解析完文件的完整路径之后是mybatis\mybatis-3.2.7\mybatis-3.2.7\\test.txt,在win7环境下可以正常读取到,而在Linux环境中就读不到了,知道了问题所在,却不知道问题的所以然。哪位大侠能给个解释
...全文
1153 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
oO临时工Oo 2017-03-02
  • 打赏
  • 举报
回复
建议用 File file = new File(path, subpath); String p = file.getPat(); 这样的方式来组装子路径,这样当一个目录用以现两种方式表示时,   path = "/a/b/c/" 或 path = "/a/b/c 不会导致 path + subpaht 可能会多一个分隔符的问题。 另外, System.get("file.separator")可以获取当前系统的路径分隔符。
oO临时工Oo 2017-03-02
  • 打赏
  • 举报
回复
在Linux环境中,路径符用的是“/”,Windows中的“\”是不符合程序设计规范的。 在程序中(包括Java和C++),“\”表示转义字符的标记。 mybatis\mybatis-3.2.7\mybatis-3.2.7\\test.txt 以上路径在Windows中,由操作系统进行了特殊处理,是没有问题的; 在Linux环境, Java对路径的解析为mybatis\mybatis-3.2.7\mybatis-3.2.7\\test.txt 三个转义字符,前2个\m导致路径解析错误,反倒最后一个 \\ 表示的就是 \ ,这个倒正确了

51,408

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧