How to set JAVA_HOME in Mac OS X High Sierra

This post describes how to configure the JAVA_HOME environment variable required by many enterprise tools, frameworks, and CMSes. For instance, Liferay, Tomcat, etc. will use this variable to work properly.

In case you have changed your default shell (Bash) that comes with OS X out-of-the-box, please read How to set JAVA_HOME in Mac OS X High Sierra with Fish shell

Step 1. Be sure you don’t have the JAVA_HOME already set

Run this command:


If the output is empty, then we don’t have the variable correctly set.

Step 2. Find the Java Development Kit directory

If you don’t know where the Java Development Kit (JDK) was installed, just run:

sudo find / -name javac

The output may be similar to this:

find: /private/var/db/ConfigurationProfiles/Store: Operation not permitted
find: /private/var/folders/y5/abbasdf/0/SafariFamily: Operation not permitted

Notice the second line, that is our JDK installation directory, so the directory we need to use is this one: /Library/Java/JavaVirtualMachines/jdk1.8.0_171.jdk/Contents/Home/

The path may vary depending on the exact version of Java you have installed

Step 3. Add the JAVA_HOME to the Bash configuration file

Let’s open the file (if don’t exist, just create it):

nano ~/.bash_profile

Add the JAVA_HOME variable at the end of ~/.bash_profile

export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_171.jdk/Contents/Home/"

Save the file ~/.bash_profile (in nano just press Control + O followed by Control + X to close the file). Finally, let’s review or configuration by typing:


This command should now print the correct JAVA_HOME:


If you don’t see your environment variable, please close all your terminal windows and re-start them so you have a “fresh” start.

Sweet, isn’t it?

See you next time.

Alex Arriaga

4 comments on “How to set JAVA_HOME in Mac OS X High Sierra”

  1. After I set export JAVA_HOME=”/Library/Java/JavaVirtualMachines/jdk1.8.0_171.jdk/Contents/Home/” in my .profile file, echo $JAVA_HOME didn’t output anything until I opened a new Terminal window.

  2. Save the file ~/.bash_profile (in nano just press Control + O followed by Control + X to close the file).

    Please expand this little better. I was just pressing control o, control x and nothing happened. after several trials I noticed, I was supposed to rename the same file name to overwrite the existing file to save it. and then that command worked. just a small detail for someone like me who never typed commands but trying to learn cucumber 😉

Leave a Reply

Your email address will not be published. Required fields are marked *