public ParentLastURLClassLoader(URL[] urls) { super(Thread.currentThread().getContextClassLoader()); childClassLoader = new ChildURLClassLoader(urls, new FindClassClassLoader(this.getParent())); }
@Override public Class<?> findClass(String name) throws ClassNotFoundException { try{ // first try to use the URLClassLoader findClass return super.findClass(name); } catch( ClassNotFoundException e ) { // if that fails, we ask our real parent class loader to load the class (we give up) return realParent.loadClass(name); } } }