static class JavaXClassLoaderWithParent2 extends JavaXClassLoader { ClassLoader virtualParent; L classesToSkip; // classes that should be taken from parent *(S progID, L files, ClassLoader virtualParent, L classesToSkip) { super(progID, files); this.virtualParent = virtualParent; this.classesToSkip = classesToSkip; } protected Class findClass(S name) throws ClassNotFoundException { if (shouldDelegate(name)) { Class c = virtualParent.loadClass(name); if (c != null) ret c; } ret super.findClass(name); } bool shouldDelegate(S name) { for (S s : classesToSkip) if (eq(name, s) || startsWith(name, s + "$")) true; false; } }