package test; import java.net.URL; import java.net.URLConnection; import java.io.InputStream; /** * Loads class bytes from a URL, such as * "http://www.mindspring.com/~happyjac/". * * @author Jack Harich - 8/30/97 */ public class URLClassLoader extends MultiClassLoader { //---------- Private Fields ------------------------------ private String urlString; //---------- Initialization ------------------------------ public URLClassLoader(String urlString) { this.urlString = urlString; } //---------- Abstract Implementation --------------------- protected byte[] loadClassBytes(String className) { className = formatClassName(className); try { URL url = new URL(urlString + className); URLConnection connection = url.openConnection(); if (sourceMonitorOn) { print("Loading from URL: " + connection.getURL() ); } monitor("Content type is: " + connection.getContentType()); InputStream inputStream = connection.getInputStream(); int length = connection.getContentLength(); monitor("InputStream length = " + length); // Failure if -1 byte[] data = new byte[length]; inputStream.read(data); // Actual byte transfer inputStream.close(); return data; } catch(Exception ex) { print("### URLClassLoader.loadClassBytes() - Exception:"); ex.printStackTrace(); return null; } } } // End class