1 回答

TA貢獻(xiàn)1834條經(jīng)驗(yàn) 獲得超8個(gè)贊
jar 也是類裝載器的一個(gè)可訪問媒介,ClassLoader 提供了兩個(gè)方法用于從裝載的類路徑中取得資源:
public URL getResource(String name);
public InputStream getResourceAsStream(String name);
這里 name 是資源的類路徑,它是相對(duì)與 “/” 根路徑下的位置。 getResource 得到的是一個(gè) URL 對(duì)象來定位資源,而getResourceAsStream 取得該資源輸入流的引用保證程序可以從正確的位置抽取數(shù)據(jù)。
真正使用的不是 ClassLoader 的這兩個(gè)方法,而是 Class 的 getResource 和 getResourceAsStream 方法,因?yàn)?Class 對(duì)象可以從你的類得到(如 YourClass.class 或 YourClass.getClass() ),而 ClassLoader 則需要再調(diào)用一次YourClass.getClassLoader() 方法,但根據(jù) JDK 文檔的說法, Class 對(duì)象的這兩個(gè)方法其實(shí)是 “ 委托 ” ( delegate )給裝載它的 ClassLoader 來做的,所以只需要使用 Class 對(duì)象的這兩個(gè)方法就可以了。
添加回答
舉報(bào)