1. 程式人生 > >類載入器獲取資源路徑

類載入器獲取資源路徑

一、同一工程中:

  1. String path = Thread.currentThread().getContextClassLoader().getResource(".").getPath(); 
  2.        System.out.println(path); 
  3.        String string = Sample1.class.getClassLoader().getResource(".").getPath(); 
  4.        System.out.println(string); 
  5.        String string2 = Sample1.class.getResource(
    ".").getPath(); 
  6.        System.out.println(string2); 

測試結果:

  1. /D:/workspaces/workspace7/demo1/target/classes/ 
  2. /D:/workspaces/workspace7/demo1/target/classes/ 
  3. /D:/workspaces/workspace7/demo1/target/classes/com/alibaba/

說明:

Classloader讀取檔案(即方式1和方法2)都是從classpath開始查詢檔案;方式3從當前類所在的目錄下開始查詢檔案

二、不同的工程中,實驗如下: 

  1. publicclass Sample2 { 
  2.     publicstaticvoid main(String[] args) { 
  3.         Sample1 sample1 = new Sample1(); 
  4.         sample1.print(); 
  5.     } 

執行結果:

  1. /D:/workspaces/workspace7/demo2/target/classes/ 
  2. /D:/workspaces/workspace7/demo2/target/classes/ 
  3. /D:/workspaces/workspace7/demo1/target/classes/com/alibaba/ 

說明:Classloader獲取的內容始終從呼叫方出發;而一般類的資源獲取是從類自身的位置觸發