- JAVA_HOME: must point to installation directory of JDK.
- JRE_HOME: must point to installation directory of JRE.
- CLASSPATH: contains libraries path which JVM will look for.
- PATH: normal environment variable on Windows.
JAVA_HOME and JRE_HOME are not used by Java itself. Some third-party programs (for example Apache Tomcat) expect one of these environment variables to be set to the installation directory of the JDK or JRE. If you are not using software that requires them, you do not need to set JAVA_HOME and JRE_HOME.
CLASSPATH is an environment variable which contains a list of directories and / or JAR files, which Java will look through when it searches for Java classes to load. You do not normally need to set the CLASSPATH environment variable. Instead of using this environment variable, you can use the -cp or -classpath option on the command line when using the javac and java commands.
PATH is an environment variable used by the operating system (Windows, Mac OS X, Linux) where it will look for native executable programs to run. You should add the bin subdirectory of your JDK installation directory to the PATH, so that you can use the javac and java commands and other JDK tools in a command prompt window. The JDK installation instructions explain how to set PATH.
Thanks Team. How does it related to CATALINA_HOME when installing tomcat server, And while I was setting JAVA_HOME path initially I did set "C:\Program Files\Java\jdk1.6.0_37\bin" but it dint work then I replaced it with "C:\Program Files\Java\jdk1.6.0_37" and it's worked! What exactly "/bin" directory has and why PATH is set to bin?
nagul samy wrote:How does it related to CATALINA_HOME when installing tomcat server,
"Catalina" is a code name for Tomcat. The Tomcat startup and shutdown scripts use CATALINA_HOME to determine where Tomcat is installed.
nagul samy wrote:And while I was setting JAVA_HOME path initially I did set "C:\Program Files\Java\jdk1.6.0_37\bin" but it dint work then I replaced it with "C:\Program Files\Java\jdk1.6.0_37" and it's worked!
Because JAVA_HOME should be set to the JDK installation directory, and not the bin subdirectory of the JDK installation directory - setting it to C:\...\bin is wrong.
nagul samy wrote:What exactly "/bin" directory has and why PATH is set to bin?
The bin subdirectory contains the executables of the Java compiler and other tools that are part of the JDK (javac.exe, java.exe, jar.exe etc.). The operating system needs to know where these executables are in order to be able to run them.
Joined: Feb 15, 2012
Thanks Jesper. Could you please explain how can we access a java file without setting CLASSPATH environment variable and by using -cp or -classpath ?