由於jar包自己做爲一個文件,在代碼中用this
File=new File("C:/xxx/xxx/xxx.jar/xxx/xxx.txt");這種方法是定位不到jar包中的資源的,jar包中的資源有其獨特的資源定位符:url
jar:<url>!/{entry} 意思便是 : <jar包的實際路徑>!/<資源在jar包中的路徑>spa
而獲取jar中的資源,咱們一般使用的方式是,this.getClass.getResource("url") 或者 this.getClass.getResourceAsStream("url")資源
這篇文章要探討的問題就是:url的路徑問題,在上面的url的格式應爲 : /xxx/xxx.txt or xxx/xxx.txt 區別就是帶不帶斜槓,get
帶 / 的狀況下是從項目根目錄開始尋找資源,這個根目錄便是classpath,若是打成jar包則對應的是jar包下的根目錄class
不帶 / 的狀況下找資源則是從當前被調用的getResource()方法的類所在的目錄做爲基目錄開始查找。方法