使用ClassLoader載入包內的資源

2021-07-27 08:50:35 字數 916 閱讀 4287

classloader可以把包(jar包,war包)內的class檔案載入到 jvm中,第一步就是將class檔案以stream的方式讀取出來。classloader也將這個載入資源的方法 getresourceasstream暴露了出來。程式設計時可以使用這個方法來載入包內的任何資源,比如properties檔案,等。

當使用classloader載入資源的時候,引數應該是資源檔案在包內的路徑,不以「/」開頭。對於classloader.getres.getresourcetest包結構存在test.properties檔案,

如果要載入test.properties。classloader的getresourceasstream的引數就是「classloader/getresource/test.properties」。

classloader可以載入任何乙個在classpath上存在的資源檔案,可以在乙個包內,也可以不在乙個包內。簡單來說,只要把資源檔案也當作乙個類來看待,把類的全路徑名中的「.」換成「/」就可以了。

getresourceasstream的引數也可以有「..」,用來回到上一層目錄。

使用class載入資源檔案

class類也有乙個getresourceasstream方法。對於同乙個包中的資源檔案,使用class載入資源檔案會更簡單。

比如上例中如果getresourcetest類想載入相同包下的test.properties,只要使用下面的**就行了。

getresourcetest.class.getresourceasstream(「test.properties」);

class類也是使用classloader去載入資源的。它所做的事情就是將引數修訂成classloader需要的格式。變化都在class類的resolvename方法中:

使用ClassLoader載入配置檔案

在敲ssm整合的時候,發現這樣的語句 作用是來讀取properties配置檔案,了解了下為什麼這麼做。classloader classloader classloadertest.class.getclassloader inputstream is classloader.getresource...

類載入器ClassLoader

在專案中有時為了實現熱部署,需要動態載入指定路徑下的.class檔案 一般很少使用自定義的類載入器,而是用urlclassloader去載入指定路徑下的.class檔案 urlclassloader 預設是去載入jar包下的.class檔案 public static void main strin...

用Class和ClassLoader載入檔案

一 要載入的檔案和.class檔案在同一目錄下,例如 com.x.y 下有類test.class 同時有資源檔案config.properties 那麼,應該有如下 前面沒有 代表當前類的目錄 inputstream is1 test.class.getresourceasstream config...