一般在專案中使用properties配置檔案的時候都將相關的properties檔案放在src目錄下,在將該app打包生成jar後,相應的properties配置檔案生...
一般在專案中使用properties配置檔案的時候都將相關的properties檔案放在src目錄下,在將該app打包生成jar後,相應的properties配置檔案生成在jar包中,這樣的話要修改配置檔案又要重新打jar包,那是相當的麻煩。
既然這麼麻煩,你肯定想將配置檔案放在其他的目錄下,生成的jar包內不包含相應的配置檔案,修改配置檔案無需重新打包,沒錯,下面就是一種解決方案了。
讀取jar包內配置檔案:
InputStream in = this.getClass().getClassLoader().getResourceAsStream("/configfilename.properties");
讀取jar包外配置檔案:
String filePath = System.getProperty("user.dir") + "/conf/configfilename.properties";
InputStream in = new BufferedInputStream(new FileInputStream(filePath));
另外,如果app中使用到log4j.properties檔案,預設的存放路徑是src/log4j.properties,同上面一樣,我想把log4j.properties放在其他目錄中,這樣一來,在修改log4j配置檔案的時候無需重新打jar包。
在main函式第一行新增如下程式碼:
PropertyConfigurator.configure(System.getProperty("user.dir") + "/conf/log4j.properties");
一般在專案中使用properties配置檔案的時候都將相關的properties檔案放在src目錄下,在將該app打包生成jar後,相應的properties配置檔案生...
一般在專案中使用properties配置檔案的時候都將相關的properties檔案放在src目錄下,在將該app打包生成jar後,相應的properties配置檔案生成在jar包中,這樣的話要修改配置檔案又要重新打jar包,那是相當的麻煩。
既然這麼麻煩,你肯定想將配置檔案放在其他的目錄下,生成的jar包內不包含相應的配置檔案,修改配置檔案無需重新打包,沒錯,下面就是一種解決方案了。
讀取jar包內配置檔案:
InputStream in = this.getClass().getClassLoader().getResourceAsStream("/configfilename.properties");
讀取jar包外配置檔案:
String filePath = System.getProperty("user.dir") + "/conf/configfilename.properties";
InputStream in = new BufferedInputStream(new FileInputStream(filePath));
另外,如果app中使用到log4j.properties檔案,預設的存放路徑是src/log4j.properties,同上面一樣,我想把log4j.properties放在其他目錄中,這樣一來,在修改log4j配置檔案的時候無需重新打jar包。
在main函式第一行新增如下程式碼:
PropertyConfigurator.configure(System.getProperty("user.dir") + "/conf/log4j.properties");