import java.net.URL; import java.net.URLClassLoader; import java.util.Map; public final class MemoryClassLoader extends URLClassLoader { private final Map classBytes; public MemoryClassLoader(Map classBytes) { super(new URL[]{}); this.classBytes = classBytes; } @Override protected Class findClass(String className) throws ClassNotFoundException { byte[] buf = classBytes.get(className); if (buf != null) { classBytes.put(className, null); return defineClass(className, buf, 0, buf.length); } else { return super.findClass(className); } } }