Java中獲取classpath路徑下的資源檔案

2021-08-22 17:19:36 字數 687 閱讀 8494

classloader提供了兩個方法用於從裝載的類路徑中取得資源:

public url getresource(string name);

public inputstream getresourceasstream(string name);

這裡name是資源的類路徑,它是相對與「/」根路徑下的位置。getresource得到的是乙個url物件來定位資源,而getresourceasstream取得該資源輸入流的引用保證程式可以從正確的位置抽取資料。

但當我第一次呼叫這兩個方法的時候,卻沒能取得我想要的資源。原來真正使用的不是classloader的這兩個方法,而是class的 getresource和getresourceasstream方法,因為class物件可以從你的類得到(如yourclass.class或 yourclass.getclass()),而classloader則需要再呼叫一次yourclass.getclassloader()方法,但 根據jdk文件的說法,class物件的這兩個方法其實是「委託」(delegate)給裝載它的classloader來做的,所以只需要使用 class物件的這兩個方法就可以了。

結論: 呼叫如下**得到正解。

this.getclass.getresourceasstream(string name);

java中獲取路徑 獲取檔案方法

1 system.getproperty user.dir 獲取使用者的當前工作路徑 2 class.getprotectiondomain getcodesource getlocation getpath 獲取jar包路徑位址 不過有兩個需要注意的 1.返回如果是個檔案說明獲取的是jar包完整路...

java中獲取位址資訊

1 獲取訪問的位址 request.getrequesturl 2 獲取訪問頁面的位址 request.getheader referer 3 獲取協議 http或者https request.getscheme 4 獲取網域名稱 request.getservername 5 獲取埠號 reque...

java中獲取訪問路徑

request.getrequesturl 與request.getrequesturi 有啥區別?request.getrequesturi 返回值類似 mycontext requestdemo.jsp 返回值是string request.getrequesturl 返回值類似 http lo...