程序中配置文件如果放置在classes文件夹,那么我们就可以使用Class类(eclipse的class文件一般存放在targert/classes下,idea一般存放在out/production/下)的getResource().getPath()方法获取文件路径。
例如:
String path = DBUtil.class.getResource("/").getPath();
获取DBUtil类的class文件的绝对路径
String path = DBUtil.class.getResource("/db.properties").getPath();
从获取DBUtil类的class文件的绝对路径下面,获得db.properties配置文件的绝对路径
值得注意的文件是,如果发布程序的web容器(tomcat)安装的路径中存在空格
D:\Program Files\Apache Software Foundation\Tomcat 8.5
该方法将会得到URLEncode后的路径,类似这样。
D:/Program%20Files/Apache%20Software%20Foundation/Tomcat%208.5/
用上面这个绝对路径去获取所需要的文件的话,就会取不到文件。
比较稳妥的做法是将path进行一次URLDecode
path = URLDecoder.decode(path, chartset);