使用URLClassLoader動態加載類

 一般動態加載類都是直接用Class.forName()這個方法,但這個方法只能創建程序中已經引用的類,並且只能用包名的方法進行索引,比如Java.lang.String,不能對一個.class文件或者一個不在程序引用裏的.jar包中的類進行創建。但使用URLClassLoader就可以直接根據創建一個單獨的.class文件,並且每當重新載入後並實例化後都是最新的方法。類似於jsp,當你在eclipse中改了一個jsp並且存儲後,只要刷新頁面就可以得到最新的結果而不用重新啓動服務器。 
    URLClassLoader是在java.net包下的一個類。他的構造函數輸入參數需要輸入1個URL數組。假設我們有一個編譯後的class文件在C:/URLClass/testClass.class中,URLClassLoader進行加載 ,其中有個方法爲test,我們需要動態加載這個類並且運行test方法 

Java代碼
  1. File xFile=new File("C:/URLClass");  
  2. URL  xUrl= xFile.toURL() ;  
  3. URLClassLoader ClassLoader=new URLClassLoader(new URL[]{ xUrl });  
  4. Class xClass=ClassLoader.loadClass("testClass");  
  5. Object xObject=xClass.newInstance();  
  6. Method xMethod=xClass.getDeclaredMethod("test");  


代碼中,省略了try catch部分,請自行添加 。 在你的工程運行前,完全可以不用引入testClass這個類,通過在運行時的動態加載就可以運行其中的方法。 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章