There are three ways to set the classpath.

  1. It can be set using the CLASSPATH environment variable :
set CLASSPATH=...         # Windows and csh
export CLASSPATH=...      # Unix ksh/bash
  1. It can be set on the command line as follows
java -classpath ...
javac -classpath ...

Note that the -classpath (or -cp) option takes precedence over the CLASSPATH environment variable.

  1. The classpath for an executable JAR file is specified using the Class-Path element in MANIFEST.MF:
Class-Path: jar1-name jar2-name directory-name/jar3-name

Note that this only applies when the JAR file is executed like this:

java -jar some.jar ...

In this mode of execution, the -classpath option and the CLASSPATH environment variable will be ignored, even if the JAR file has no Class-Path element.

If no classpath is specified, then the default classpath is the selected JAR file when using java -jar, or the current directory otherwise.

Related: