org.jikesrvm.classloader
Class ApplicationClassLoader

java.lang.Object
  extended by java.lang.ClassLoader
      extended by java.security.SecureClassLoader
          extended by java.net.URLClassLoader
              extended by org.jikesrvm.classloader.ApplicationClassLoader

public class ApplicationClassLoader
extends URLClassLoader

The class loader used by Jikes RVM to load the application program. Since version 1.2 of the Sun API docs, the Application ClassLoader and the System Class Loader are officially the same thing. (What Jikes RVM used to call the "System Class Loader" is officially the "Bootstrap Class Loader".)

We use a two-link chain. An ordinary user's class is loaded by this class loader. This class loader first delegates to its parent (the Bootstrap Class Loader) before trying the class itself.

Renamed the former "system class loader" to the "bootstrap class loader".


Field Summary
private  boolean createdAtBootImageWritingTime
          For status printing, to make sure that, if an application class loader is created at boot image writing time, it won't leak out into the next mode.
private  boolean createdWithRunningVM
           
(package private) static boolean DBG
           
static String myName
          Name of the Application Class Loader.
(package private) static int numInstantiations
           
 
Constructor Summary
ApplicationClassLoader(String specifiedClasspath)
           
 
Method Summary
protected  String findLibrary(String libName)
           
 String toString()
           
 
Methods inherited from class java.net.URLClassLoader
addURL, definePackage, findClass, findResource, findResources, getPermissions, getURLs, newInstance, newInstance
 
Methods inherited from class java.security.SecureClassLoader
defineClass, defineClass
 
Methods inherited from class java.lang.ClassLoader
clearAssertionStatus, clone, defineClass, defineClass, defineClass, defineClass, definePackage, findLoadedClass, findSystemClass, getPackage, getPackages, getParent, getResource, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, loadClass, loadClass, resolveClass, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

DBG

static final boolean DBG
See Also:
Constant Field Values

numInstantiations

static int numInstantiations

createdAtBootImageWritingTime

private final boolean createdAtBootImageWritingTime
For status printing, to make sure that, if an application class loader is created at boot image writing time, it won't leak out into the next mode. This is actually not used any more, but it should never hurt, and can give one a sense of confidence when debugging Jikes RVM's classloaders.


createdWithRunningVM

private final boolean createdWithRunningVM

myName

public static final String myName
Name of the Application Class Loader. Actually used by Jikes RVM's serialization code.

I intended this name to reflect both "SystemClassLoader" and "ApplicationClassLoader".

See Also:
Constant Field Values
Constructor Detail

ApplicationClassLoader

public ApplicationClassLoader(String specifiedClasspath)
Method Detail

toString

public String toString()
Overrides:
toString in class Object

findLibrary

protected String findLibrary(String libName)
Overrides:
findLibrary in class ClassLoader