# Java Programs
➤ Introduction to Java
➤ Java Editions & Concepts
➤ JDK JRE JVM JIT in Java
➤ How to Run Java program
➤ Java Hello World program
➤ How to set the Java path
➤ Classpath Environment
➤ Tokens in Java Language
➤ List of Java Keywords
➤ Identifiers in Java
➤ Data types in Java
➤ Float & double in Java
➤ Literals in Java
➤ Escape Sequence In Java
➤ Unicode character set
➤ String data type in Java
➤ Arithmetic operators in Java
➤ Increment and Decrement
➤ Comments in Java
➤ Java Naming Conventions
➤ Static Import in Java
To make the binary files of certain locations executable from any location of the computer without copying them physically to other locations, we must add the original location of those files to the path variable. Similarly, to use the java tools we need to set the java path.
The path variable is a mediator between the programmer and the command prompt window. The programmer should set the path variable by storing the binary file path (bin folder path). Command prompt need path variable to find and execute binary files of software.
What is the need to set the path in Java?
One question can come in our mind that after installing JDK, why we set environment variables? Without setting environment variables, open command prompt (cmd) and run javac command.
> java -version 'java' is not recognized as an internal or external command, operable program or batch file.
Is it working? No, because the javac tool is not available for the command prompt. The command prompt searches for the javac tool in the current directory and also in the path variable. But the javac tool is available in the bin folder of the JDK installation directory.
Observe the error message it means javac file is not available outside of Java software installed directory. Just by installing software, its binary and library files are not available from directories automatically. To solve this problem and to access all Java files throughout the operating system from all folders we must update path variables.
Different ways to set the Java path variable
There are two types of setting the path variable to solve the above problem:- temporary settings, and permanent settings.
The syntax to set the path variable in Java only for current command prompt,
set path=<path_of_JDK_bin_folder>;%path% or, path=<path_of_JDK_bin_folder>;%path%
> set path=C:\Program Files\Java\jdk\bin;%path%
Java is by default installed at C:\Program Files\Java\jdk\In case, you have installed java at another location, then add that path.
Problems and Advantage with temporary settings
These settings are lost after closing the command prompt window. For every new command prompt window or terminal, we must do this setup again and again.
To save these settings permanently in the operating system and for using these settings from all command prompt windows even after windows restart, we must save path settings permanently in environment variables.
When we have more than one JDK of different versions installed in our operating system, then the temporary setting is very helpful for us. For example, our computer has both JDK1.8 and JDK13, and JDK13 is by default compiler for Java program (due to permanent setting). Now, we need to run a Java program using the JDK1.8 version then we should use temporary settings.
The permanent settings can be done at two levels, one for a single user and another for all users of one operating system.
Permanent setting using the environment variable
If you want to environment variable setting only for a single user (Or, only one user is in your system) then we need to do below setting. Generally, we do these settings at the time of the installation of JDK.
Environment settings done at installation time is enough for a single user.
Step1:- Go to Advanced system settings,
My PC -> Properties -> Advanced system settings
Control Panel -> System and Security -> System -> Advance system settings
Step2:- Click on Environment variables.
In this Window, in the User variables section, we will create/update the path. If the path already exists then we will update it else we will create a new variable.
Step3:- Go to the JDK installation folder and copy the path of the bin folder.
By default, Java is installed in “
C:\Program Files\Java\jdk\bin” Or, “
C:\Program Files(x86)\Java\jdk\bin”. In case, you have installed java at another location, then copy that path.
Step4:- Check the path variable already exist or not. If exist then select it and click on the “edit” button, else create new.
Step5:- Add the path of the bin folder. The syntax for updating the path variable and its value is,
Variable Name: PATH Variable Value: <JAVA_HOME>\bin;<old_values>
If you are editing the path variable (path variable already exists), then don’t disturb the previous values. In this just add the Java-bin path to first and click on ok.
Variable Value: C:\Program Files\Java\jdk-13.0.1\bin;<old_values>
If you are creating new then give update it as,
Variable Name: PATH Variable Value: <JAVA_HOME>\bin
Click on all OK, save the settings. You have done. Now, it’s time to check the installation is done correctly or not. Open, new command prompt (cmd) and type
> java -version java version "13.0.1" 2019-10-15 Java(TM) SE Runtime Environment (build 13.0.1+9) Java HotSpot(TM) 64-Bit Server VM (build 13.0.1+9, mixed mode, sharing)
In order to make sure whether the compiler is set up, type
javac command in the command prompt. You will see a list related to the javac command.
Permanent settings using the System variable
If your system has more than one user then from the command prompt you can’t access the tools available in the bin folder of JDK, like javac/java in other users except the user have settings.
Permanently settings for the operating system is similar to the settings for the one user. It can be done using these steps:-
Step1:- Copy the path of the bin folder of JDK.
Step2:- Go to My Computer -> Properties -> Advance System Settings -> Environment variables. In the System variable settings, click on the path and edit button.
Step3:- A new window will appear. Now, click on the New button and paste the path variable of java software.
Step4:- Java path should be top of all environment variable So, click on
"Move up" up to Java path came on top. Click on all OK buttons.
To verify the setup type javac in cmd and run it. Now, javac and all other Java files are also available for another user in the System.
Important points to set the Java path variable
1) Which setting is best for us?
If you are a beginner then it is recommended to do permanent settings using System variable. This setting will be used by all the users of the computer.
The permanent settings for the environment variable are done only for the single user, the other users of the computer don’t access tools available in the bin directory of JDK.
2) It is optional to add the current directory in the path variable.
The syntax for the variable value is:- <JAVA_HOME>\bin;<old_values>
Here, the semicolon is used as a separator.
Sometimes we also add the current working directory in the path variable as,
variable value = <JAVA_HOME>\bin;<old_values>;.
Here the dot represents the current working directory. Generally, we never place our Java files (.java/.class) in the bin folder of the JDK. It is optional to add the current working directory (.) in the path variable.
3) Role of the semicolon in the path variable
The semicolon in the path variable is a separator. It is used to separate one variable value from another variable value. Note that we should not place the semicolon at the last of the variable value, it is equal to not adding that value in the path variable value.
Why we should set the Java path at the beginning of the existing values?
You can observe, we tell that the syntax of the variable value is <JAVA_HOME>\bin;<old_values> but it is not true. We can also use <old_values>;<JAVA_HOME>\bin syntax. In the permanent settings for the multiple users, we move up the path at the top, it is not compulsory to do this.
There is a reason to place the bin folder of JDK in the first beginning of the path variable. There is a chance that the one older value in the path variable is removed then in that case, our computer doesn’t consider the remaining variable values. The computer checks only up to the correct values of the path variable. In this case, if we place the bin folder of JDK at the last in the path variable values, then the computer will not found the bin folder of JDK. Hence, it is always recommended to place the JDK’s bin folder in the first place of the path variable.
When we should use temporary setting of the path variable?
When there are multiple JDKs are installed in the system and we want to work with different JDKs then, In this case, the temporary setting is very useful for us. Let us understand it by an example:-
At the time of post writing, the latest version is JAVA SE 13.0. But there are many technologies like servlet, JDBC, Spring e.t.c which are working with JAVA SE 8.0. To work with these technologies we must have JDK1.8 installed in our computer system, and to get familiar with the latest features of Java generally, we also installed the latest JDK in the computer system.
Now, most of the time we are working with technologies using JDK1.8, and only sometimes we are working with the latest JDK. So, the bin folder of JDK1.8 is used in the path variable.
In this case by default tools of the JDK1.8\bin will be used by the computer. To use the latest JDK, we must set the path of the latest JDK’s bin folder using temporary settings.
C:\> java -version java version "1.8.0_241" Java(TM) SE Runtime Environment (build 1.8.0_241-b07) Java HotSpot(TM) 64-Bit Server VM (build 25.241-b07, mixed mode) C:\> path=C:\Program Files\Java\jdk-13.0.1\bin;%path% C:\> java -version java version "13.0.1" 2019-10-15 Java(TM) SE Runtime Environment (build 13.0.1+9) Java HotSpot(TM) 64-Bit Server VM (build 13.0.1+9, mixed mode, sharing)
Every temporary setting is reflected only in one command prompt. Whenever we exit from that command prompt then the setting will be lost.
Important points on environment and system variables
1) The environment and system variable names are not case-sensitive.
2) The values added to the environment variables from advanced system settings (permanent settings) will remain permanent whereas the value of the environment variable added to the CMD prompt will remain temporary.
3) The user environment variables are specified to currently logged-in Windows users, whereas System environment variables are visible to all the windows users.
4) Multiple values added to the environment variables must be separated with a semicolon “;” symbol.
5) It is recommended to add new value to the environment variable at the beginning of the existing values.
6) The values added to environment variables will not be reflected in the already opened command prompt/terminal so, we must open a new CMD prompt/terminal.
Other points on the Java path variable
If the Oracle database is installed in our computer system then, in the path variable value we must always place the JDK bin folder path before the Oracle bin folder. Because oracle software also contains Java software, which may be an older version than our JDK installed software. If we placed the Oracle software path before the JDK software path then programs are compiled by the JDK of Oracle database software and the programs will not be executed.
We don’t set path variables for running a game software because we don’t need to run game software from the command prompt window. The game software runs from its own window by double-clicking the shortcut icon on the desktop. We must set a path variable only for that software that requires a command prompt window to run the software.
If you enjoyed this post, share it with your friends. Do you want to share more information about the topic discussed above or you find anything incorrect? Let us know in the comments. Thank you!