diff options
Diffstat (limited to 'nailgun_launcher/MultiClassLoader2.java')
-rw-r--r-- | nailgun_launcher/MultiClassLoader2.java | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/nailgun_launcher/MultiClassLoader2.java b/nailgun_launcher/MultiClassLoader2.java new file mode 100644 index 0000000..fadd963 --- /dev/null +++ b/nailgun_launcher/MultiClassLoader2.java @@ -0,0 +1,29 @@ +package cbt; +import java.net.*; +import java.util.*; + +public class MultiClassLoader2 extends ClassLoader{ + public ClassLoader[] parents; + public ClassLoader[] parents(){ + return this.parents; + } + public MultiClassLoader2(ClassLoader... parents){ + super(null); + this.parents = parents; + } + public Class findClass(String name) throws ClassNotFoundException{ + for(ClassLoader parent: parents){ + try{ + return parent.loadClass(name); + } catch (ClassNotFoundException e) { + if(e.getMessage() != name) throw e; + } + } + // FIXME: have a logger in Java land + // System.err.println("NOT FOUND: "+name); + return null; + } + public String toString(){ + return super.toString() + "(" + Arrays.toString(parents) +")"; + } +} |