How to Set Java Home on CentOS
Set up your CentOS system so that your Java applications know exactly where to find the executable files and libraries they need to run. If you have root or administrator privileges, set the $JAVA_HOME variable to Java's directory location for all users system-wide. If you only need to set the path for your non-root, user sessions, add the path information to your personal Bash shell profile.
Set JAVA_HOME System-Wide
Start a root terminal session and then change directories to the /usr/lib/jvm folder. If you prefer, you can also log in to your system as root.
Display the folder's contents by typing the following command at the Bash shell prompt and then pressing "Enter:" ls -lThe listing will show several symbolic links and a single folder that contains your Java package files. The Java folder installed on CentOS 7 systems may have a name resembling the following: java-1.7.0-openjdk-126.96.36.199-188.8.131.52.el7_0.x86_64The full path to this folder, however, will be:/usr/lib/jvm/java-1.7.0-openjdk-184.108.40.206-220.127.116.11.el7_0.x86_64
Type the Bash shell Export command that will set the $JAVA_HOME variable to the Java folder's full path and then press "Enter." Your command should resemble the following:export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-18.104.22.168-22.214.171.124.el7_0.x86_64If you type "echo $JAVA_HOME" (without the quotes) at the command line and press "Enter", the shell will display the JAVA_HOME path. The path change will be lost when you reboot, however, unless you add the change to the system profile located in the /etc folder.
Switch directories to /etc and then open the "profile" text file using an editor like Vi, Emacs or Nano. The profile text file contains system-wide bash shell commands, parameters and variable available to all users.
Scroll to a blank line near the bottom of the file, type the same Export command you entered at the shell prompt, save the file and then exit your editor. When you or another user logs in to a CentOS session, the JAVA_HOME variable will be set.
JAVA_HOME for Single Users
Launch the file manager and then navigate to the /usr/lib/jvm folder. The file manager should display the icons for one folder and several symbolic links.
Select the folder and then press "Ctrl-C" to copy it to the clipboard. One item the clipboard will contain is the full directory path to the Java folder.
As a normal, non-root user, launch Gedit and then open the ".bash_profile" text file located in your Home folder. Settings included in the .bash_profile are set every time you log in to your system.
Click a blank line near the bottom of the file and then press "Ctrl-V" to paste Java folder's full path. The pasted line should resemble the following:file:///usr/lib/jvm/java-1.7.0-openjdk-126.96.36.199-188.8.131.52.el7_0.x86_64To put the path in a format you can use, however, delete the "file://" section. The result should resemble the following/usr/lib/jvm/java-1.7.0-openjdk-184.108.40.206-220.127.116.11.el7_0.x86_64
Add the Bash shell export command to this line that assigns the path to $JAVA_HOME, save your changes, and then exit Gedit. The final path command in your .bash_profile should resemble the following line: export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-18.104.22.168-22.214.171.124.el7_0.x86_64
Log out of your CentOS session and then log back on set the $JAVA_HOME variable to Java's current location.
Tips & Warnings
- Edit your .bash_profile or /etc/profile files whenever your system's Java package is updated. Run the following command at a root or normal user terminal prompt to compare the current version of Java with the version referenced by the $JAVA_HOME variable.
- java -version
- Information in this article applies to CentOS 7 and CentOS 6.5. Procedures may vary slightly or significantly with other versions of CentOS.