1. 程式人生 > >由一個配置檔案引發的問題

由一個配置檔案引發的問題

this.getClass().getClassLoader().getResourceAsStream(path),

先是讀取 jar包內部 有沒有這個path,如果內部沒有時,再讀取jar包當前目錄下的path,

值得注意的是這個需要有一個例項化類,才能getClass,否則是編譯不過的
this.getClass().getProtectionDomain().getCodeSource().getLocation().getPath(); 得到的是程式執行所在路徑
System.getProperty(“user.dir”); 和 this.getClass().getProtectionDomain().getCodeSource().getLocation().getPath() 是不一樣的, System.getProperty(“user.dir”)得到的是使用者執行的時候的那個路徑,不一定是jar包所在路徑
總之:我還是儘量選擇第一個,getClass().getClassLoader().getResourceAsStream(path),但是要小心第一種的配置,是優先讀取jar包內部的路徑,jar包內部讀取不到時才讀取當前jar包位置的路徑