我们在开发java程序、到生产环境部署java程序的时候,经常会使用到配置文件。
在开发的时候,会把配置文件放在源码的目录里,可以理解为放在classpath里。例如:
在生产环境运行程序的时候,会经常把配置文件放在jar包的旁边,可以理解为相对路径。例如:
上述的两个场景,其实就是读取配置文件的路径问题。
第一个是通过classpath去读取配置文件;
第二个是通过文件系统的相对路径去读取配置文件。
解决方案如下:
Properties p = new Properties();
try {
URL url = Object.class.getResource("/" + CONFIG_FILE);
if (url == null) {
// 生产环境,在jar包所在的目录下寻找
p.load(new FileInputStream(new File("./" + CONFIG_FILE)));
} else {
// 开发环境,在classpath里寻找
p.load(Object.class.getResourceAsStream("/" + CONFIG_FILE));
}
Driver_Path = p.getProperty("chrome.driver");
System.out.println(String.format("driver.path:%s", Driver_Path));
} catch (IOException e) {
e.printStackTrace();
}