Java 文件路径读取问题

问题背景
项目里遇到个问题:因为特殊原因,没有用spring框架的读取配置文件里属性,而是自己手写的读取工具类。这样就导致问题:windows和Linux里的配置文件路径可能不一样,导致生产环境里读取不到配置。

解决方案
一.先判断操作系统

String os = System.getProperty("os.name");  

根据os字符串,判断是否包含”win”字符串,若包含是windows操作系统,否则就是Linux。
二.判断文件路径
一种是文件路径就在classpath下,按如下操作即可这样拿到文件路径:

xxx.class.getClassLoader().getResource("default.properties").getFile()

第二种是,文件路径不在classpath下面,也不在jar包里,在其他目录下,例如xx.class在/a/lib/xx.jar(xx.class在Jar包里的classpath里)下,而default.properties文件路径为a/conf/default.properties,先拿到用户路径:

System.getProperty("user.dir")

这个路径即为/a/lib/,所以为了取到配置文件下,则再加如下字符串即可。

String deFilePath = System.getProperty("user.dir") + "/../conf/default.properties";  

../即后退个文件夹,从/a/lib到/a,所有后面组合成即为:/a/conf/default.properties。
为了系统兼容性,读取 配置文件是if..else..即可。

猜你喜欢

转载自blog.csdn.net/qq_35033270/article/details/80864849
今日推荐