bsh.classpath

Class BshClassLoader

Known Direct Subclasses:
DiscreteFilesClassLoader

public class BshClassLoader
extends URLClassLoader

One of the things BshClassLoader does is to address a deficiency in URLClassLoader that prevents us from specifying individual classes via URLs.

Constructor Summary

BshClassLoader(BshClassManager classManager)
For use by children
BshClassLoader(BshClassManager classManager, URL[] bases)
BshClassLoader(BshClassManager classManager, BshClassPath bcp)

Method Summary

void
addURL(URL url)
protected Class
findClass(String name)
Find the correct source for the class...
Class
loadClass(String name, boolean resolve)
This modification allows us to reload classes which are in the Java VM user classpath.

Constructor Details

BshClassLoader

protected BshClassLoader(BshClassManager classManager)
For use by children
Parameters:

BshClassLoader

public BshClassLoader(BshClassManager classManager,
                      URL[] bases)
Parameters:
bases - URLs JARClassLoader seems to require absolute paths

BshClassLoader

public BshClassLoader(BshClassManager classManager,
                      BshClassPath bcp)
Parameters:

Method Details

addURL

public void addURL(URL url)

findClass

protected Class findClass(String name)
            throws ClassNotFoundException
Find the correct source for the class... Try designated loader if any Try our URLClassLoader paths if any Try base loader if any Try system ???

loadClass

public Class loadClass(String name,
                       boolean resolve)
            throws ClassNotFoundException
This modification allows us to reload classes which are in the Java VM user classpath. We search first rather than delegate to the parent classloader (or bootstrap path) first. An exception is for BeanShell core classes which are always loaded from the same classloader as the interpreter.

B) 2000-2005 pat@pat.net :-)