This section explains how to use thePATH
andCLASSPATH
environment variables on Microsoft Windows, Solaris, and Linux. Consult the installation instructions included with your installation of the Java Development Kit (JDK) software bundle for current information.After installing the software, the JDK directory will have the structure shown below.
The bin
directory contains both the compiler and the launcher.Update the PATH Variable (Microsoft Windows NT/2000/XP)
You can run Java applications just fine without setting thePATH
variable. Or, you can optionally set it as a convenience.Set the
PATH
variable if you want to be able to conveniently run the executables (javac.exe
,java.exe
,javadoc.exe
, and so on) from any directory without having to type the full path of the command. If you do not set thePATH
variable, you need to specify the full path to the executable every time you run it, such as:C:\Program Files\Java\jdk1.6.0\bin\javac MyClass.java
Note: It is useful to set thePATH
permanently so it will persist after rebooting. To set it permanently, add the full path of thejdk1.6.0
bin directory to thePATH
variable. Set thePATH
as follows.To make a permanent change to the CLASSPATH variable, use the System icon in the Control Panel. The precise procedure varies depending on the version of Windows.
The
PATH
can be a series of directories separated by semicolons (;). Microsoft Windows looks for programs in thePATH
directories in order, from left to right. You should have only onebin
directory for the JDK in the path at a time (those following the first are ignored), so if one is already present, you can update that particular entry.
Update the PATH Variable (Solaris and Linux)
You can run the JDK just fine without setting thePATH
variable, or you can optionally set it as a convenience. However, you should set the path variable if you want to be able to run the executables (javac
,java
,javadoc
, and so on) from any directory without having to type the full path of the command. If you do not set thePATH
variable, you need to specify the full path to the executable every time you run it, such as:To find out if the path is properly set, execute:% /usr/local/jdk1.6.0/bin/javac MyClass.javaThis will print the version of the% java -versionjava
tool, if it can find it. If the version is old or you get the error java: Command not found, then the path is not properly set.To set the path permanently, set the path in your startup file.
For C shell (
csh
), edit the startup file(~/.cshrc
):Forset path=(/usr/local/jdk1.6.0/bin )bash
, edit the startup file (~/.bashrc
):ForPATH=/usr/local/jdk1.6.0/bin: export PATHksh
, the startup file is named by the environment variable,ENV
. To set the path:ForPATH=/usr/local/jdk1.6.0/bin: export PATHsh
, edit the profile file (~/.profile
):Then load the startup file and verify that the path is set by repeating thePATH=/usr/local/jdk1.6.0/bin: export PATHjava
command:For C shell (
csh
):For% source ~/.cshrc % java -versionksh
,bash
, orsh
:% . /.profile % java -version
Checking the CLASSPATH variable (All platforms)
TheCLASSPATH
variable is one way to tell applications, including the JDK tools, where to look for user classes. (Classes that are part of the JRE, JDK platform, and extensions should be defined through other means, such as the bootstrap class path or the extensions directory.)The preferred way to specify the class path is by using the
-cp
command line switch. This allows theCLASSPATH
to be set individually for each application without affecting other applications. Setting theCLASSPATH
can be tricky and should be performed with care.The default value of the class path is ".", meaning that only the current directory is searched. Specifying either the CLASSPATH variable or the
-cp
command line switch overrides this value.To check whether
CLASSPATH
is set on Microsoft Windows NT/2000/XP, execute the following:On Solaris or Linux, execute the following:C:> echo %CLASSPATH%If% echo $CLASSPATHCLASSPATH
is not set you will get a CLASSPATH: Undefined variable error (Solaris or Linux) or simply %CLASSPATH% (Microsoft Windows NT/2000/XP).To modify the
CLASSPATH
, use the same procedure you used for thePATH
variable.Class path wildcards allow you to include an entire directory of
.jar
files in the class path without explicitly naming them individually. For more information, including an explanation of class path wildcards, and a detailed description on how to clean up theCLASSPATH
environment variable, see the Setting the Class Path technical note.