861

I downloaded Java 7u17 on Mac OS 10.7.5 from here and successfully installed it. To do some JNI programming, I need to know where Java is installed on my Mac.

I thought that inside the /Library/Java/JavaVirtualMachines/ folder, there would be a folder called 1.7.0.jdk or something, but then I found the folder empty. This was confirmed by running ls /Library/Java/JavaVirtualMachines/ in the Terminal. I've tried searching for it to find out if it was installed somewhere, but that doesn't seem to be turning anything up.

Could someone please tell me where Java is installed on my Mac?

Thunderforge
  • 19,637
  • 18
  • 83
  • 130
  • 18
    To close voters/reopeners - this question is [explicitly not off-topic (questions about tools commonly used by programmers)](http://stackoverflow.com/help/on-topic). Unfortunately, it got bandwagoned by [meta](http://meta.stackoverflow.com/questions/322704/beyond-confused-about-question-and-answer-reception). – Rob May 10 '16 at 00:35
  • 3
    I found the JDK in **/Library/Java/JavaVirtualMachines/**. I'm using macOS Big Sur(11.0.1). And installed jdk version is 1.8.0 – Chaitanya Feb 14 '21 at 19:51

21 Answers21

1627

Use /usr/libexec/java_home -v 1.8 command on a terminal shell to figure out where is your Java 1.8 home directory

If you just want to find out the home directory of your most recent version of Java, omit the version. e.g. /usr/libexec/java_home

Arsen Khachaturyan
  • 7,904
  • 4
  • 42
  • 42
gerrytan
  • 40,313
  • 9
  • 84
  • 99
  • 1
    I got to this question because I was getting an error in eclipse on my mac because I was getting an error on the first line of the program "import java.util.*." I strongly suspect this is because the java path isn't set correctly or something (even though I set this up once before). I entered the command in this answer and I get a directory. Can I just paste that directory into the textbox in the "Native library folder config" window? Or does this directory belong somewhere else? – OKGimmeMoney Apr 16 '15 at 20:40
  • 59
    Added `export JAVA_HOME=\`/usr/libexec/java_home\`` to .bash_profile so JAVA_HOME is always set (note the back-ticks around the libexec command) – Steve Henty Nov 17 '15 at 00:33
  • 2
    If you just want to know if the JDK is installed on your mac, omit the version number and run from terminal: $ echo $(/usr/libexec/java_home) – Daniel Viglione Mar 24 '18 at 21:41
  • 6
    On Mac 10.12.3, we should `/usr/libexec/java_home -- v` to show the most recent version of java – klion26 Jan 07 '19 at 03:49
  • 4
    Note that macOS Big Sur changed the behaviour of the java_home command. Noe, if if the JAVA_HOME environment variable is already set to a valid JDK that is all it will return, it will ignore the -v parameter. If JAVA_HOME is set to an invalid folder, the java_home command won't work at all. To get a reasonable output you must unset JAVA_HOME before invoking `/usr/libexec/java_home` – swpalmer Nov 18 '20 at 16:19
184

You could use

/usr/libexec/java_home

command in your terminal to know the path where Java being installed.

Shahab Rauf
  • 3,651
  • 29
  • 38
Pavithra Gunasekara
  • 3,902
  • 8
  • 36
  • 46
87

Turns out that I actually had the Java 7 JRE installed, not the JDK. The correct download link is here. After installing it, jdk1.7.0jdk appears in the JavaVirtualMachines directory.

Thunderforge
  • 19,637
  • 18
  • 83
  • 130
  • 56
    For me, it was under `/Library/Java/JavaVirtualMachines/jdk1.7.0_60.jdk` (knowing that for the JDK 1.6 the path is : `/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/`) – Zakaria Jul 09 '14 at 19:56
  • 3
    export JAVA_HOME=$(/usr/libexec/java_home) at ~/.bash_profile – Oleksii Kyslytsyn Jul 21 '19 at 14:43
46

If you install just the JRE, it seems to be put at:

/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
Morrie
  • 577
  • 4
  • 3
38

Try This, It's easy way to find java installed path in Mac OS X,

GoTO

1 ) /Library i.e Macintosh HD/Library

enter image description here

2) Click on Library in that we find Java folder.

enter image description here

3) So final path is

/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home

Hope so this is help for someone .

Jaywant Khedkar
  • 5,941
  • 2
  • 44
  • 55
35

Use unix find function to find javas installed...

sudo find / -name java
Abimaran Kugathasan
  • 31,165
  • 11
  • 75
  • 105
serkan
  • 555
  • 7
  • 13
  • 23
    You do not need sudo to run find for generally-accessible commands. If you don't want to see the error messages about inaccessible directories, get rid of the messages rather than using root privs unnecessarily. Using sudo all the time is a bad habit. Redirect stderr to /dev/null, like this: find / -name java 2> /dev/null – Walter Underwood Sep 26 '13 at 15:29
  • 1
    What should i do if i need too look under inaccessible directories ? – serkan Sep 29 '13 at 11:29
  • 2
    Walter's point is that the `java` binary will be world readable, therefore `sudo` is not necessary. Your answer is still useful :) – Jared Beck Nov 06 '13 at 16:32
  • Yes, I just used this to find src.zip (the source code of the java jdk) – Dinis Cruz Jan 22 '14 at 11:44
  • export JAVA_HOME=$(/usr/libexec/java_home) at ~/.bash_profile – Oleksii Kyslytsyn Jul 21 '19 at 14:43
25

If you type

java -verbose 

This also gives the location from which the jars are loaded and hence also the java path.

jones j alapat
  • 931
  • 3
  • 13
  • 26
22

Java package structure of Mac OS is a bit different from Windows. Don't be upset for this as a developer just needs to set PATH and JAVA_HOME.

So in .bash_profile set JAVA_HOME and PATH as below. This example is for Java 6:

export JAVA_HOME=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
export PATH=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin:$PATH
Shawn
  • 10,931
  • 18
  • 81
  • 126
Bimales Mandal
  • 321
  • 3
  • 4
18

You may not realize it, but you likely have multiple Java versions installed.

To list the version, architecture, and folder location of all installed JVMs on your Mac:

$ /usr/libexec/java_home --verbose

Or:

$ /usr/libexec/java_home -V (That's an uppercase V!)

Sample output:

$ /usr/libexec/java_home -V
Matching Java Virtual Machines (4):
    12.0.1 (x86_64) "Oracle Corporation" - "Java SE 12.0.1" /Library/Java/JavaVirtualMachines/jdk-12.0.1.jdk/Contents/Home
    1.8.202.08 (x86_64) "Oracle Corporation" - "Java" /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
    1.8.0_282 (x86_64) "Amazon" - "Amazon Corretto 8" /Users/username/Library/Java/JavaVirtualMachines/corretto-1.8.0_282/Contents/Home
    1.8.0_202 (x86_64) "Oracle Corporation" - "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/jdk-12.0.1.jdk/Contents/Home
Derek Lee
  • 3,452
  • 3
  • 30
  • 39
  • 1
    This is a more complete answer IMHO. I had multiple versions installed and the /Internet Plug-Ins/... was causing an issue with the Java updater tool, but I couldn't find the version the tool was complaining about ... until now. – wildcat12 Sep 21 '22 at 22:19
12

just write /Library/Java/JavaVirtualMachines/
in Go to Folder --> Go in Finder

Mina Fawzy
  • 20,852
  • 17
  • 133
  • 156
  • ok, I just tried this and I managed to navigate to the directory. Why can't I navigate to that folder normally in Finder? Is this just Apple being extra annoying... Also extra annoying, Gradle version 4.3 doesn't work with any version of Java except for Java 8 – SoftwareSavant Dec 13 '18 at 04:48
  • export JAVA_HOME=$(/usr/libexec/java_home) at ~/.bash_profile – Oleksii Kyslytsyn Jul 21 '19 at 14:44
  • this folder is empty in my case ... but when i check java -version ... it show version 1.8 – Wahab Khan Jadon Oct 01 '22 at 14:58
10

Edited: Alias to current java version is /Library/Java/Home

For more information: a link

manny
  • 162
  • 1
  • 5
10

type which java in terminal to show where it is installed.

Pranay Aryal
  • 5,208
  • 4
  • 30
  • 41
8

For :

  • OS X : 10.11.6

  • Java : 8

I confirm the answer of @Morrie .

   export JAVA_HOME=/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home;

But if you are running containers your life will be easier

Abdennour TOUMI
  • 87,526
  • 38
  • 249
  • 254
7

I have just installed the JDK for version 21 of Java SE 7 and found that it is installed in a different directory from Apple's Java 6. It is in /Library/Java... rather then in /System/Library/Java.... Running /usr/libexec/java_home -v 1.7 versus -v 1.6 will confirm this.

Tony Kroch
  • 87
  • 1
7

I tried serkan's solution, it found java 7's location on OS X Mavericks. it is resided in "/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/" but to make it the default JDK I had to set JAVA_HOME system variable in .bash_profile in home directory to "/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/" so its up and running now thanks to serkan's idea

codercat
  • 22,873
  • 9
  • 61
  • 85
Mehdi Ijadnazar
  • 4,532
  • 4
  • 35
  • 35
4

Try to check in here
/Library/Java/JavaVirtualMachines

Tal Hakmon
  • 475
  • 5
  • 6
2

if you are using sdkman

you can check it with sdk home java <installed_java_version>

$  sdk home java 8.0.252.j9-adpt
/Users/admin/.sdkman/candidates/java/8.0.252.j9-adpt

you can get your installed java version with

$ sdk list java
user9869932
  • 6,571
  • 3
  • 55
  • 49
0

The System Preferences then Java control panel then Java then View will show the exact location of the currently installed default JRE.

PaulNUK
  • 4,774
  • 2
  • 30
  • 58
0

MacOS BigSur

Add following under .zshrc file. If .zshrc is not present, create and add.

export JAVA_HOME=`/usr/libexec/java_home`
Suraj Rao
  • 29,388
  • 11
  • 94
  • 103
KR Akhil
  • 877
  • 3
  • 15
  • 32
0

If it's installed via IntelliJ IDEA. It's at ~/Library/Java/JavaVirtualMachines

psbox2021
  • 43
  • 5
-1

Simply enter the following in your terminal :

where is java
RusJaI
  • 666
  • 1
  • 7
  • 28