1 21 package com.db4o.test.util; 22 23 import java.net.*; 24 import java.util.*; 25 26 public class ExcludingClassLoader extends URLClassLoader { 27 private Vector excludedNames; 28 29 public ExcludingClassLoader(ClassLoader parent,Vector excludedNames) { 30 super(new URL[]{},parent); 31 this.excludedNames=excludedNames; 32 } 33 34 protected synchronized Class loadClass(String name, boolean resolve) throws ClassNotFoundException { 35 if(excludedNames.contains(name)) { 36 throw new ClassNotFoundException (name); 37 } 38 return super.loadClass(name, resolve); 39 } 40 41 public static void main(String [] args) throws Exception { 42 ClassLoader parent=ExcludingClassLoader.class.getClassLoader(); 43 String excName=ExcludingClassLoader.class.getName(); 44 Vector excluded=new Vector(); 45 ClassLoader incLoader=new ExcludingClassLoader(parent,excluded); 46 System.out.println(incLoader.loadClass(excName)); 47 excluded.add(excName); 48 try { 49 System.out.println(incLoader.loadClass(excName)); 50 } 51 catch(ClassNotFoundException exc) { 52 System.out.println("Ok, not found."); 53 } 54 } 55 } 56 | Popular Tags |