aspose file tools*
The moose likes Beginning Java and the fly likes Difference among JAVA_HOME,JRE_HOME,CLASSPATH and PATH Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Java 8 in Action this week in the Java 8 forum!
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "Difference among JAVA_HOME,JRE_HOME,CLASSPATH and PATH" Watch "Difference among JAVA_HOME,JRE_HOME,CLASSPATH and PATH" New topic
Author

Difference among JAVA_HOME,JRE_HOME,CLASSPATH and PATH

nagul samy
Ranch Hand

Joined: Feb 15, 2012
Posts: 37
Hi Team,

What are the differences among JAVA_HOME,JRE_HOME,CLASSPATH and PATH ?

Thanks in Advance.
Nam Ha Minh
Ranch Hand

Joined: Oct 31, 2011
Posts: 485

- 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.


PM Me If You Want to get Urgent Help on Java Programming
Jesper de Jong
Java Cowboy
Saloon Keeper

Joined: Aug 16, 2005
Posts: 13884
    
  10

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.


Java Beginners FAQ - JavaRanch SCJP FAQ - The Java Tutorial - Java SE 7 API documentation
Scala Notes - My blog about Scala
nagul samy
Ranch Hand

Joined: Feb 15, 2012
Posts: 37
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?
Jesper de Jong
Java Cowboy
Saloon Keeper

Joined: Aug 16, 2005
Posts: 13884
    
  10

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.
nagul samy
Ranch Hand

Joined: Feb 15, 2012
Posts: 37
Thanks Jesper. Could you please explain how can we access a java file without setting CLASSPATH environment variable and by using -cp or -classpath ?

Nam Ha Minh
Ranch Hand

Joined: Oct 31, 2011
Posts: 485

nagul samy wrote:Thanks Jesper. Could you please explain how can we access a java file without setting CLASSPATH environment variable and by using -cp or -classpath ?



Even without -cp or -classpath??? it's impossible.
Jesper de Jong
Java Cowboy
Saloon Keeper

Joined: Aug 16, 2005
Posts: 13884
    
  10

nagul samy wrote:Thanks Jesper. Could you please explain how can we access a java file without setting CLASSPATH environment variable and by using -cp or -classpath ?

You just specify the classpath on the command line after the -cp or -classpath option, exactly like you would do when you'd set the CLASSPATH.

For example, instead of:

set CLASSPATH=C:\Projects\MyProject\build
java org.mypackage.HelloWorld


you would do:

java -cp C:\Projects\MyProject\build org.mypackage.HelloWorld

Reference: Java application launcher documentation
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Difference among JAVA_HOME,JRE_HOME,CLASSPATH and PATH
 
Similar Threads
Please some body help me, setting enviromental variables for Tomcat 7.
Environment variable
tomcat
java.lang.UnsupportedClassVersionError
PATH, JAVA_HOME and JRE_HOME best practices