How to set environment variables in Windows 7 for Java

Environmental variables are used by the operating system to save settings (default values, locations of resources) to be used by Windows or by processes launched by users.
There are two types of environmental variables:

  • user variables that are specific to a particular Windows user account;
  • system variables are always visible, regardless of the used user account.

Even if these variables are usually defined and initialized automatically when you install the system or other applications, there are situations in which the user must manually define them to put at the disposal of applications.
The considered scenario is to set environment variables to enable the compilation and execution of Java applications from the command line (command prompt) or by using an IDE like Eclipse. By installing the Java SDK, system variables about the location of executables (compiler, java virtual machine) are not defined or initialized automatically.
Testing is done by opening command prompt (Start -> cmd) and trying to launch the compiler with the command

C:\Users\Catalin>javac.exe

If there is no system variable to indicate where to look for the this executable, the system will give an error like:

'javac' is not recognized as an internal or external command,
operable program or batch file.

The solution to this problem is given by setting the system variables: JAVA_HOME, PATH and CLASSPATH:

  1. Open the Control Panel -> System or Security โ€“> System; the same thing can be done by right-clicking on MyComputer and choosing Properties
System window in Windows 7
System window in Windows 7


2.   Choose Advanced System Settings option

System properties window in Windows
System properties window in Windows


3.   Choose the Environment Variables option

Environment variables in Windows
Environment variables in Windows


4.   In the System variables section it is selected New

5.   Define the variable name, JAVA_HOME and its value C:\Program Files\Java\jdk1.6.0_16 (for this example JDK version 1.6.0 was installed in C:\Program Files\Java\jdk1.6.0_16 folder; if needed, modify this value to reflect the real situation)

6. Insert a new system variable named, CLASSPATH and its value %JAVA_HOME%\jre\lib

New system variable
New system variable


7. For PATH, if it already exists, select it and choose the Edit option; in the editor add the value;%JAVA_HOME%\bin (the new values are separated by a semicolon from the existing ones)

Testing the system variables is done by opening a new command prompt window (Start -> cmd) and trying to launch the compiler with the command:

C:\Users\Catalin>javac
Usage: javac
where possible options include:
  -g                         Generate all debugging info
...

or, by using next commands

C:\Users\Catalin>echo %CLASSPATH%
C:\Program Files\Java\jdk1.6.0_16\jre\lib

C:\Users\Catalin>echo %JAVA_HOME%
C:\Program Files\Java\jdk1.6.0_16

C:\Users\Catalin>echo %PATH%

8. Restart the computer in order to make your system aware of these changes (thanks to Ike for reminding me)