Pick a path, any path
By darcy on Jul 21, 2009
Today the full logical classpath available to an application or used in
javac is actually a
twisty little maze of concatenated sub-paths, starting with the bootclasspath, followed by the extension directories, and finally the classpath setting itself.
The endorsed standards override mechanism is used to selectively update various components logically included on the bootclasspath as part of the JDK, either components for standards that evolve outside of the JCP, like Corba, or standalone JSRs also shipped with the JDK,
The extension mechanism can be used to support technologies not shipped with the JDK, such as an independent JSR or even a site-wide library.
The table below shows the different command line options to
javac that can be used to configure the sub-paths.
These options have evolved over time. The bootclasspath and extension directories were added in JDK 1.2, the ability to prepend to the bootclasspath was added in JDK 1.3, endorsed standards were added in JDK 1.4, JDK 5
harmonized the path options on the
javac command lines, and JDK 6 allowed classpath wildcards, but only for the strict classpath component and not for bootclasspath or the
Class-Path Jar manifest attribute.
Check the documentation for the JDK release in question for matching configuration information.
There is certainly plenty of opportunity for modularity in JDK 7 to simplify the configuration options needed to resolve dependencies!
|bootclasspath/p:||Endorsed standards||bootclasspath[/a:]||Extension Directories||classpath|