The Java Class Library (JCL) is a set of dynamically loadable libraries that Java applications can call at run time. Because the Java Platform is not dependent on a specific operating system, applications cannot rely on any of the platform-native libraries. Instead, the Java Platform provides a comprehensive set of standard class libraries, containing the functions common to modern operating systems.
JCL serves three purposes within the Java Platform:
JCL is almost entirely written in Java, except for the parts that need direct access to the hardware and operating system (such as for I/O, or bitmap graphics). The classes that give access to these functions commonly use Java Native Interface wrappers to access operating system APIs.
Almost all of JCL is stored in a single Java archive file called "rt.jar", which is provided with JRE and JDK distributions. The Java Class Library (rt.jar) is located in the default bootstrap classpath, and does not have to appear in the classpath declared for the application. The runtime uses the bootstrap class loader to find the JCL.
The upcoming Java Module System (planned for Java 9) will break the monolithic "rt.jar" Jar file, and modularize the Java Class Library itself in several modules with specified dependencies.
Any Java implementation must pass the Java Technology Compatibility Kit tests for compliance, which includes JCL tests.