java.lang.Object
java.lang.ClassLoader
java.security.SecureClassLoader
java.net.URLClassLoader
org.gjt.sp.jedit.bsh.classpath.BshClassLoader
- All Implemented Interfaces:
Closeable
,AutoCloseable
- Direct Known Subclasses:
DiscreteFilesClassLoader
One of the things BshClassLoader does is to address a deficiency in
URLClassLoader that prevents us from specifying individual classes
via URLs.
-
Constructor Summary
ModifierConstructorDescriptionprotected
BshClassLoader
(BshClassManager classManager) For use by childrenBshClassLoader
(BshClassManager classManager, URL[] bases) BshClassLoader
(BshClassManager classManager, BshClassPath bcp) -
Method Summary
Methods inherited from class java.net.URLClassLoader
close, definePackage, findResource, findResources, getPermissions, getResourceAsStream, getURLs, newInstance, newInstance
Methods inherited from class java.security.SecureClassLoader
defineClass, defineClass
Methods inherited from class java.lang.ClassLoader
clearAssertionStatus, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findLibrary, findLoadedClass, findResource, findSystemClass, getClassLoadingLock, getDefinedPackage, getDefinedPackages, getName, getPackage, getPackages, getParent, getPlatformClassLoader, getResource, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, getUnnamedModule, isRegisteredAsParallelCapable, loadClass, registerAsParallelCapable, resolveClass, resources, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
-
Constructor Details
-
BshClassLoader
- Parameters:
bases
- URLs JARClassLoader seems to require absolute paths
-
BshClassLoader
- Parameters:
bcp
- URLs JARClassLoader seems to require absolute paths
-
BshClassLoader
For use by children- Parameters:
classManager
- URLs JARClassLoader seems to require absolute paths
-
-
Method Details
-
addURL
- Overrides:
addURL
in classURLClassLoader
-
loadClass
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.- Overrides:
loadClass
in classClassLoader
- Throws:
ClassNotFoundException
-
findClass
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 ???- Overrides:
findClass
in classURLClassLoader
- Throws:
ClassNotFoundException
-