ClassLoader 动态加载定义

来源:互联网 发布:中国太岁网淘宝店 编辑:程序博客网 时间:2024/03/29 19:23

static {
       
try {
            AccessController.
doPrivileged(newPrivilegedExceptionAction() {
            
publicObject run()throws Exception {
             Class cl = Class.
forName("java.lang.ClassLoader"); 

            defineClass1= cl.getDeclaredMethod("defineClass", new Class[]{

           String.class, byte[].class, int.class,  int.class});

            defineClass2= cl.getDeclaredMethod("defineClass", new Class[]{

            String.class,byte[].class, int.class, int.class,ProtectionDomain.class}); 

            definePackage= cl.getDeclaredMethod("definePackage", new Class[]{

            String.class,String.class,String.class,String.class,String.class,String.class,String.class,

            java.net.URL.class});

            Field f = Unsafe.class.getDeclaredField("theUnsafe");// Internal reference 

            f.setAccessible(true); 

            unSafe= (Unsafe) f.get(null); return null;}
            })
;}

            catch(PrivilegedActionException pae) {
           
throw newRuntimeException("cannot initialize ClassPool",pae.getException()); 

      }

原创粉丝点击