Wednesday, July 3, 2024
HomeOperating SystemsCentosSet JAVA_HOME on CentOS / RHEL / Fedora

Set JAVA_HOME on CentOS / RHEL / Fedora

I’ve seen many questions on how to set JAVA_HOME on CentOS / Fedora / RHEL Linux distributions. JAVA_HOME is used to set the path of Java installation on a Linux or Windows system. JAVA_HOME is just a convention and it is usually used by Java EE and Tomcat servers and build tools such as Gradle, Ant and Maven to find where Java is installed.

In this guide I’ll show you an easy and recommended way of setting JAVA_HOME on CentOS / Fedora / RHEL Linux system. We assume you already have Java installed before you can set JAVA_HOME.

Install Java on CentOS 7, Fedora, RHEL/ CentOS 8.

Set JAVA_HOME on CentOS / Fedora / RHEL

If you have more than one version of Java installed, you may want to set default version before you configure JAVA_HOME on CentOS / Fedora / RHEL system. For this, use the command below.

sudo alternatives --config java

This will give you a prompt to confirm the default Java version you want to set.

There are 2 programs which provide 'java'.

  Selection    Command
-----------------------------------------------
*  1           java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.201.b09-2.el7_6.x86_64/jre/bin/java)
+ 2           java-11-openjdk.x86_64 (/usr/lib/jvm/java-11-openjdk-11.0.19.0.7-1.el7_9.x86_64/bin/java)
Enter to keep the current selection[+], or type selection number: 2

You can set JAVA_HOME in .bash_profile, .bashrc file or for all Global users in /etc/profile or as bash function inside /etc/profile.d/ directory.

Add below line to any of bash dotfiles mentioned above.

export JAVA_HOME=$(dirname $(dirname $(readlink $(readlink $(which javac)))))

Then source the file. Suppose you added this to ~/.bashrc, you’ll run:

source ~/.bashrc

Confirm Environment variable value.

$ echo $JAVA_HOME
/usr/lib/jvm/java-11-openjdk-11.0.19.0.7-1.el7_9.x86_64

You also need to add Java /bin directory to your PATH

export PATH=$PATH:$JAVA_HOME/bin

Java CLASSPATH can be set using:

export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar

So your complete setting will have the lines:

export JAVA_HOME=$(dirname $(dirname $(readlink $(readlink $(which javac)))))
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar

Here is my screenshot.

set java path home 1

Don’t forget to source the file or logout and back in.

# Examples
source ~/.bashrc
source ~/.bash_profile
source /etc/profile
source /etc/profile.d/java.sh

Then confirm:

echo $JAVA_HOME
echo $PATH
echo $CLASSPATH

And that’s all. You application should locate the Java installation directory.

Recommended books:

Also check:

Thapelo Manthata
I’m a desktop support specialist transitioning into a SharePoint developer role by day and Software Engineering student by night. My superpowers include customer service, coding, the Microsoft office 365 suite including SharePoint and power platform.
RELATED ARTICLES

Most Popular

Recent Comments