ArtsAutosBooksBusinessEducationEntertainmentFamilyFashionFoodGamesGenderHealthHolidaysHomeHubPagesPersonal FinancePetsPoliticsReligionSportsTechnologyTravel
  • »
  • Technology»
  • Computers & Software»
  • Computer Science & Programming»
  • Programming Languages

What is PATH and CLASSPATH in Java - Setting in Windows Unix and Linux

Updated on August 17, 2012

What is PATH and CLASSPATH environment variable in Java

PATH and CLASSPATH are two environment variable which plays important role on Java development environment. PATH environment variable is used to locate binary or Java commands required to compile and execute Java program like javac ( java compiler) and java command must be in PATH in order to compile any Java file and run any Java program. CLASSPATH is used to find .class file which is loaded by Application ClassLoader. There are three Class loaders which is used to locate and load class files e.g. Boot Strap class loader, extension class loader and System or application class loader. out of three last class loader is responsible for loading classes from CLASSPATH in Java.

Both PATH and CLASSPATH environment variable contains list of directories where Operating System like Windows, Unix, Linux or Solaris and JVM search for Java binaries and class files. If PATH is not set means if Java binaries are not present in PATH environment variable, You will not be able to run java and javac command, you will most likey receive error

"javac unknown command or command not found"

What happens if CLASSPATH and PATH is not set in Java

While if CLASSPATH is not set you will likely get java.lang.ClassNotFoundException or java.lang.NoClassDefFoundError in Java based upon whether corresponding class is present on compile time and not present or runtime. CLASSPATH can also be specified by running java command with option –classpath or –cp or by using Class-Path attribute on Manifest file or any JAR executable. If you specified CLASSPATH on multiple way than Class-Path attribute will take higherst precedence followed by –classpath or –cp command followed by CLASSPATH environment variable. If a class is present on multiple directory specified in CLASSPATH than the directory which comes earlire in CLASSPATH will be used to load that class. To learn more about How CLASSPATH works in Java , see this article, it explains how exactly classes are picked from classpath.

How to set PATH and CLASSPATH in Windows

You can set PATH and CLASSPATH in windows by executing following command :

set CLASSPATH=%CLASSPATH%;C:\MyApplication\lib

%CLASSPATH% is used to get value of current CLASSPATH variable and than it appends your application directory on CLASSPATH. Similarly PATH can be set in Windows by using following command :

set PATH=%PATH%;C:\Program Files\Java\jdk1.6.0\bin

If you want to set PATH and CLASSPATH using windows GUI then refer How to set PATH for Java in Windows using GUI.

By the way command line method of setting PATH and CLASSPATH will work on Windows 2000, Windows XP, Windows 7 , Windows 8 , DOS and any other version of Windows.

How to set CLASSPATH and PATH in Linux/Unix/Solaris

Similar to the technique we used to set CLASSPATH and PATH in windows by command prompt, we can set CLASSPATH in any UNIX environment like RedHat Linux, IBM AIX or Sun Solaris.

export CLASSPATH= ${CLASSPATH}:/home/user/java/JDK1.6/lib

here ${CLASSPATH} is used to refer value of old CLASSPATH environment variable. Similarly to set PATH in UNIX or Linux just replace CLASSPATH with PATH environment variable as shown in below example :

export PATH= ${ PATH }:/opt/ Java/jdk1.6.0/bin

That’s all on What is PATH and CLASSPATH in Java, How to set PATH and CLASSPATH in Java and What happens if your PATH and CLASSPATH is not properly set. This is the first fundamental every Java programmer should learn and understand to avoid debugging and troubleshooting CLASSPATH related issue which evenutally comes in form of java.lang.ClassNotFoundException and java.lang.NoClassDefFoundError in Java.


    0 of 8192 characters used
    Post Comment

    • profile image

      Ramya 3 years ago

      It is very use full for me .I can understand the concept very well.Thank You.

    • profile image

      Rajiv 5 years ago

      Check here for more difference between Path and Classpath in Java programming language :