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:
- Open the Control Panel -> System or Security โ> System; the same thing can be done by right-clicking on MyComputer and choosing Properties
2. Choose Advanced System Settings option
3. Choose the Environment Variables option
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
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)
You forgot to say that you need to RESTRART the computer to invoke the changes.
After restarting my PC more than half an hour, I found out that you only need to have ‘bin folder’ variable:
PATH = C:\Program Files (x86)\Java\jdk1.6.0_26\bin
Only when I deleted the other two, javac compiler started working, and I could execute HelloWorld.class afterwards.
Hi Ike,
Thank you for reminding me about the restart. I have updated the post.
What do you mean about deleting the other 2 lines ? These two JAVA_HOME and CLASSPATH.
If this is the case, be aware that for more complex examples than HelloWorld you need classes from the Java framework which are placed in the % JAVA_HOME%\jre\lib.
You can skip JAVA_HOME variable because it is just an alias for the full path of the Java folder. In the CLASSPATH variable just replace %JAVA_HOME% with the path.
superb it works on windows 7
no need to ree start on windows 7 it works for me
Nicely explained. But to reflect all above changes restart is a must. You also need to set JAVA_HOME along with PATH and CLASSPATH.
For more refer to this link
http://www.a2ztechguide.com/2011/10/setting-environment-variables-javahome.html
Thx! Works perfectly!
Greetings from Chile.
Thank you
just add the path to the bin directory in the java folder separated by “;” e.g. C:\Program Files (x86)\Java\jre6\bin and then restart the system.
thanks ๐
Very well explained explained…..
Cheers
very thanks friend for this information now i get rid from this problem ๐ keep rocking thanks again ๐
Thanks! Worked Great!
Good Article…Works fine!
great its works 100%
Thanks it is working perfectly… Thanks a lot
After messing with those for an hour and a half trying other solutions this one worked perfectly. Excellent article, thank you so much.
Yes, it is working fine for Windows7. Thanks
tanx a lot… ๐
Thanks a lot!! worked perfectly when tryin to install android SDK!! ๐
thank u… it works ๐
tnx alot
Regards waheed
thankssssssss………..
this is successfully working
WOW, works perfectly
Thanks a lot my friend. This site is a lifesaver:)
after writing the simple Helloworld program and writing java Helloworld in cmd prompt it shows an error: “could not find or load main class “
Hi Chhaya,
Please verify if the class name is identical with the file name. Java is a case sensitive language.
Also, have you compiled the .java file withe the javac.exe compiler into the bytecode file, .class ?
each time I compile hear is what I get; javac:file not found:Helloworld
usage:javac
use -help for a list of possible options.
this happens to any program i try to compile,and the path and class path is set correctly