1 package com.quadcap.http.servlets.jsp; 2 3 40 41 import java.util.Hashtable ; 42 43 import java.io.File ; 44 import java.io.FileInputStream ; 45 import java.io.IOException ; 46 47 import com.quadcap.util.Debug; 48 49 54 public class JspClassLoader extends ClassLoader { 55 File root; 56 57 public JspClassLoader(ClassLoader parent, File root) { 58 super(parent); 59 this.root = root; 60 } 61 62 public Class loadClass(String name) throws ClassNotFoundException { 63 return loadClass(name, true); 64 } 65 66 84 public Class findClass(String name) throws ClassNotFoundException { 85 if (Trace.level() > 1) { 87 Debug.println("JspClassLoader.findClass(" + name + ")"); 88 } 89 byte[] b = loadClassData(name); 91 return defineClass(name, b, 0, b.length); 92 } 93 94 private byte[] loadClassData(String name) throws ClassNotFoundException { 95 try { 96 String fileName = name.replace('.', File.separatorChar); 97 File classFile = new File (root, fileName + ".class"); 98 int len = (int)(classFile.length()); 99 byte[] b = new byte[len]; 100 FileInputStream f = new FileInputStream (classFile); 101 f.read(b); 102 f.close(); 103 return b; 104 } catch (IOException e) { 105 throw new ClassNotFoundException ("error loading class: " + 106 e.toString()); 107 } 108 } 109 110 } 111 112 | Popular Tags |