1 package com.sslexplorer.agent.client.util; 2 3 import java.util.Hashtable ; 4 5 10 public class ByteArrayClassLoader extends ClassLoader { 11 12 static ByteArrayClassLoader instance; 13 14 private Hashtable classes = new Hashtable (); 15 private ClassLoader parent; 16 17 22 public ByteArrayClassLoader(ClassLoader parent) { 23 this.parent = parent; 24 } 25 26 Class createFromByteArray(String name, byte[] buf, int off, int len) { 27 28 if (!classes.containsKey(name)) { 29 classes.put(name, defineClass(name, buf, off, len)); 30 } 31 return (Class ) classes.get(name); 32 33 } 34 35 38 public Class loadClass(String name, boolean resolve) throws ClassNotFoundException { 39 40 if (classes.containsKey(name)) { 41 return (Class ) classes.get(name); 42 } else 43 return parent.loadClass(name); 44 } 45 46 51 public static ByteArrayClassLoader getInstance() { 52 return instance == null ? instance = new ByteArrayClassLoader(ByteArrayClassLoader.class.getClassLoader()) : instance; 53 } 54 } 55 | Popular Tags |