Path vs Classpath

The PATH environment variable contains a set of directories within the file system that the operating system uses to find executable files. When you type a command in command prompt, operating system will look for the corresponding executable in the current folder and then it will look inside every folder mentioned in the PATH environment variable in order.

For exaplme, when you type javac, operating system will search for java.exe within the current folder and then every folder mentioned inside in the PATH environment variable in the same order. If it can't find one, you'll get error message. The "bin" directory of your jdk contains the javac.exe file. Therefore, if you type "javac" in command prompt, you should have the "bin" directory in the PATH or you should execute from the bin directory. 

If your path to jdk bin folder (where javac is there) is 'C:\Program Files\Java\jdk1.6.0_13\bin', then you can add it to the PATH environment variable in windows as:

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

%PATH% will be replaced by existing path PATH environment variable contents. 

Directory paths in an environment variable is separated using semicolon (;) in windows and colon (:) in Unix.


The CLASSPATH environment variable contains a set of directories within the file system or JAR file loactions that JDK/JVM will search for Java class files while compiling/executing a Java program. Setting a class path can be done similar to setting PATH, just use CLASSPATH instead of PATH.You can also specify classpath along with java command using classpath or cp options as:

java -classpath path HelloWorld


java -cp path HelloWorld

 -classpath will take precedence over any CLASSPATH environment variable set.

When working in the command promt, the current directory is denoted by dot (.) and parent directory is denoted by dot dot (..) 

If CLASSPATH variable is not set, java will add the current directory to CLASSPATH, but if you provide CLASSPATH, then you need to explicitly add the current directory (.) to class path. 

java -cp . HelloWorld 

To add current directory with other folders in a classpath, separate it with a semicolon or colon as per the OS you use as:



Quick Notes Finder Tags

Activities (1) advanced java (1) agile (3) App Servers (6) archived notes (2) Arrays (1) Best Practices (12) Best Practices (Design) (3) Best Practices (Java) (7) Best Practices (Java EE) (1) BigData (3) Chars & Encodings (6) coding problems (2) Collections (15) contests (3) Core Java (All) (55) course plan (2) Database (12) Design patterns (8) dev tools (3) downloads (2) eclipse (9) Essentials (1) examples (14) Exception (1) Exceptions (4) Exercise (1) exercises (6) Getting Started (18) Groovy (2) hadoop (4) hibernate (77) hibernate interview questions (6) History (1) Hot book (5) http monitoring (2) Inheritance (4) intellij (1) java 8 notes (4) Java 9 (1) Java Concepts (7) Java Core (9) java ee exercises (1) java ee interview questions (2) Java Elements (16) Java Environment (1) Java Features (4) java interview points (4) java interview questions (4) javajee initiatives (1) javajee thoughts (3) Java Performance (6) Java Programmer 1 (11) Java Programmer 2 (7) Javascript Frameworks (1) Java SE Professional (1) JPA 1 - Module (6) JPA 1 - Modules (1) JSP (1) Legacy Java (1) linked list (3) maven (1) Multithreading (16) NFR (1) No SQL (1) Object Oriented (9) OCPJP (4) OCPWCD (1) OOAD (3) Operators (4) Overloading (2) Overriding (2) Overviews (1) policies (1) programming (1) Quartz Scheduler (1) Quizzes (17) RabbitMQ (1) references (2) restful web service (3) Searching (1) security (10) Servlets (8) Servlets and JSP (31) Site Usage Guidelines (1) Sorting (1) source code management (1) spring (4) spring boot (3) Spring Examples (1) Spring Features (1) spring jpa (1) Stack (1) Streams & IO (3) Strings (11) SW Developer Tools (2) testing (1) troubleshooting (1) user interface (1) vxml (8) web services (1) Web Technologies (1) Web Technology Books (1) youtube (1)