Java Virtual Machine classloaders

The Java Virtual Machine classloaders, also called the system classloader, are provided by the Java Virtual Machine run time. In JDK 1.3, there are three classloaders, which have the following hierarchy:

  1. boot classloader
    Loads the core JDK 1.3 runtime classes.
  2. extension classloader
    Loads Java Virtual Machine extensions. The classes loaded are defined by the value of the java.ext.dirs Java system property.
  3. user classloader
    Loads user classes. The classes loaded are defined by the value of the CLASSPATH environment variable or the -classpath Java option.

The user classloader contains the J2EE APIs of WebSphere Application Server - Express (inside j2ee.jar). Because the J2EE APIs are in this classloader, you can add libraries that depend on J2EE APIs to the classpath system property to extend a server's classpath. However, this is not recommended. The normal and recommended configuration is to package J2EE artifacts in an enterprise application (EAR) and have these classes loaded by an application module classloader.

It is normally not recommended to change any of the Java Virtual Machine classloaders in a WebSphere Application Server - Express environment. User code should be added to either application server classloaders or application module classloaders.

The i5/OS Java Virtual Machine user classloader has a cache feature that allows the Java Virtual Machine to "remember" classes that have been loaded with user classloaders. For more information, see Java cache for user classloaders.