[other]Custom URL classloader

来源:互联网 发布:what s up 软件 编辑:程序博客网 时间:2024/06/09 19:56

 利用定制的urlClassloader在程序中动态的加载类文件。

 

  1. package com.flylb.util;
  2. import java.io.File;
  3. import java.net.MalformedURLException;
  4. import java.net.URL;
  5. import java.net.URLClassLoader;
  6. public class MyUrlClassLoader {
  7.     private URLClassLoader urlCl;
  8.     public MyUrlClassLoader(URL[] url, ClassLoader parentClassLoader) {
  9.         urlCl = new URLClassLoader(url, parentClassLoader);
  10.     }
  11.     public URLClassLoader getUrlCl() {
  12.         return urlCl;
  13.     }
  14.     public static void main(String[] args) {
  15.         URL[] cp = new URL[10];
  16.         try {
  17.             cp[0] = new File("E://eclipse_rcp_app//Hello//bin").toURI().toURL();
  18.         } catch (MalformedURLException e) {
  19.             e.printStackTrace();
  20.         }
  21.         MyUrlClassLoader mcl = new MyUrlClassLoader(cp, MyUrlClassLoader.class.getClassLoader());
  22.         URLClassLoader ucl = mcl.getUrlCl();
  23.         Class<?> c = null;
  24.         try {
  25.             c = Class.forName("test.Hello"false, ucl);
  26.             c.getMethod("main", String[].class).invoke(nullnew Object[] { args });
  27.         } catch (ClassNotFoundException e1) {
  28.             e1.printStackTrace();
  29.         } catch (Exception e) {
  30.             e.printStackTrace();
  31.         }
  32.     }
  33. }
原创粉丝点击