The original design for checkstyle and the Java mixin for tools provided
for a single configured classpath, defined as java_classpath
in the
configuration file or as the $CLASSPATH
environment variable.
In practice, this doesn't work too well. Both PMD and checkstyle used
some of the same dependencies, bundled in both their respective jar
files. Depending on the versions, these dependencies would conflict when
both were in a classpath.
Rather than having a single classpath, there's now tool-specific
classpaths, defined as tool keys in java_classpaths
in the
configuration file.
The $CLASSPATH
environment variable is no longer supported or
recommended, but if it's set for the process, it will still bubble
through. We may not want to support this long-term, but we get it for
free right now due to how execute()
works, and it's not worth the
effort of preventing it.