Mac OS X上的Java安装在哪里?


726

我刚刚从此处从Mac OS 10.7.5下载了Java 7u17 ,然后成功安装了它。为了进行一些JNI编程,我需要知道Mac上Java的安装位置。

我以为该/Library/Java/JavaVirtualMachines/文件夹内会有一个名为之类的文件夹1.7.0.jdk,但后来我发现该文件夹为空。通过ls /Library/Java/JavaVirtualMachines/在终端中运行确认了这一点。我已经尝试搜索它,以了解它是否已安装在其他地方,但这似乎并没有解决任何问题。

有人可以告诉我Mac上Java的安装位置吗?


12
关闭投票者/重新投票者-这个问题显然不是题外话(关于程序员通常使用的工具的问题)。不幸的是,它受到meta的困扰
罗布

Answers:


1383

/usr/libexec/java_home -v 1.8在终端外壳上使用命令找出Java 1.8主目录在哪里

如果只想查找Java最新版本的主目录,请忽略该版本。例如/usr/libexec/java_home


我遇到了这个问题,因为在Mac上的eclipse中出现错误,因为在程序“ import java.util。*”的第一行出现了错误。我强烈怀疑这是因为Java路径设置不正确或其他原因(即使我之前设置过一次)。我在此答案中输入了命令,然后得到了一个目录。我可以将该目录粘贴到“本地库文件夹配置”窗口中的文本框中吗?还是该目录属于其他地方?
OKGimmeMoney 2015年

47
添加export JAVA_HOME=`/usr/libexec/java_home`到.bash_profile中,因此始终设置JAVA_HOME(请注意libexec命令周围的引号)
Steve Henty 2015年

如果您只是想知道Mac上是否安装了JDK,请省略版本号并从终端运行:$ echo $(/ usr / libexec / java_home)
Donato

3
在Mac 10.12.3上,我们应该/usr/libexec/java_home -- v显示Java的最新版本
klion26'1

116

您可以echo $(/usr/libexec/java_home)在终端中使用command来了解Java的安装路径。


7
我比接受的答案更喜欢此解决方案,因为它独立于所安装的JVM版本。
Alexandre Santos

1
找不到Oracle安装的Java 8版本。
AntoineLizée,2016年

13
你为什么在echo $(...)那里?不只是/usr/libexec/java_home这样做吗?
圣保罗Ebermann

1
接受的答案对我不起作用,但这行得通!(我通常不是mac / unix用户)
Roel

@PaŭloEbermann没有美元符号和方括号,这对我不起作用。
NikolaStojaković17年

80

原来我实际上安装了Java 7 JRE,而不是JDK。正确的下载链接在这里。安装后,它会jdk1.7.0jdk出现在JavaVirtualMachines目录中。


49
对我来说,这是在/Library/Java/JavaVirtualMachines/jdk1.7.0_60.jdk(知道了JDK 1.6的路径是:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/
扎卡里亚

非常感谢!我没有注意到xD是我偶然安装的JRE
Oliver Ni

1
在〜/ .bash_profile处导出JAVA_HOME = $(/ usr / libexec / java_home)
Oleksii Kyslytsyn

35

如果仅安装JRE,则它似乎位于:

/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home

1
您不应该依赖这个现有的。如果需要JRE,请将其捆绑在自己的应用程序中。
摇摆人2014年

用包含空格字符的路径设置JAVA_HOME是具有挑战性的!我没有成功...
Antoine Rosset 2014年

您可以在某处创建指向该目录的链接,并将JAVA_HOME设置为该链接
Kuba,2014年

这是“ Java”“系统偏好设置”面板似乎要安装的位置。
David Avendasora

2
@AntoineRosset,您可以这样设置:export JAVA_HOME=/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
coda

24

使用Unix查找功能查找已安装的Java ...

sudo find / -name java

19
您不需要sudo即可运行通常可访问的命令的find。如果您不想看到有关无法访问的目录的错误消息,请摆脱掉这些消息,而不是不必要地使用root privs。一直使用sudo是个坏习惯。将stderr重定向到/ dev / null,如下所示:find / -name java 2> / dev / null
Walter Underwood 2013年

1
如果我也需要查看无法访问的目录,该怎么办?
serkan 2013年

2
沃尔特的观点是java二进制将是世界可读的,因此sudo不是必需的。您的答案仍然有用:)
Jared Beck

是的,我只是用它来查找src.zip(java jdk的源代码)
Dinis Cruz 2014年

在〜/ .bash_profile处导出JAVA_HOME = $(/ usr / libexec / java_home)
Oleksii Kyslytsyn

22

试试看,这是在Mac OS X中查找Java安装路径的简便方法,

1)/库,即Macintosh HD /库

在此处输入图片说明

2)点击库中我们找到的Java文件夹。

在此处输入图片说明

3)所以最后的路径是

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

希望这对某人有帮助。


1
当您必须从IDE显式指向JDK时,该功能非常有用。谢谢
Shwetabh Shekhar

我有多密集?我的终端说,我在/ Library / Java / JavaVirtualMachines /中安装了2个jdk,但是当我在finder中导航到该目录时找不到它们……我能得到多少密度……
SoftwareSavant

@SoftwareSavant,请参考 stackoverflow.com/a/14875241回答,可能会对您有所帮助。
Jaywant Khedkar

19

Mac OS的Java软件包结构与Windows有所不同。不必为此烦恼,因为开发人员只需设置PATH和即可JAVA_HOME

因此,在.bash_profile设置JAVA_HOMEPATH如下。此示例适用于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

12
这样可以清除路径上的其他所有内容吗?仅当您仅使用Java而在系统中没有其他操作时才执行此操作。
圣保罗Ebermann

在〜/ .bash_profile处导出JAVA_HOME = $(/ usr / libexec / java_home)。
Oleksii Kyslytsyn

17

如果您输入

java -verbose 

这也提供了从中加载jar的位置,因此也提供了Java路径。


我在〜/ .bash_profile中添加了导出JAVA_HOME = $(/ usr / libexec / java_home)。
Oleksii Kyslytsyn

8

编辑:当前Java版本的别名为 /Library/Java/Home

有关更多信息:链接


这将是最新版本的别名,一旦安装,它将正确指向Java 7 SDK。
Thunderforge

1
该链接仅出于旧有目的而存在,不会通过安装Java 7进行更新。请勿使用此路径。
摇摆人

我在〜/ .bash_profile中更新了导出JAVA_HOME = $(/ usr / libexec / java_home)。
Oleksii Kyslytsyn

8

只需/Library/Java/JavaVirtualMachines/
在“转到文件夹”->“在查找器中”中编写


好的,我只是尝试了一下,然后设法导航到该目录。为什么我不能在Finder中正常导航到该文件夹​​?难道这只是苹果公司的烦人事吗?同样令人烦恼的是,Gradle 4.3版不适用于Java的任何版本,除了Java 8
SoftwareSavant

在〜/ .bash_profile处导出JAVA_HOME = $(/ usr / libexec / java_home)
Oleksii Kyslytsyn,

6

我刚刚安装了Java SE 7版本21的JDK,发现它安装在与Apple Java 6不同的目录中。它在/ Library / Java ...中,而不是在/ System / Library / Java中。 。运行/ usr / libexec / java_home -v 1.7与-v 1.6可以确认这一点。


在〜/ .bash_profile处导出JAVA_HOME = $(/ usr / libexec / java_home)
Oleksii Kyslytsyn

6

我尝试了serkan的解决方案,它在OS X Mavericks上找到了Java 7的位置。它驻留在其中,"/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/" 但要使其成为默认的JDK,我必须在"/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/" ser 目录中的.bash_profile中将JAVA_HOME系统变量设置为,以便它能够正常运行,这要归功于serkan的想法


在〜/ .bash_profile处导出JAVA_HOME = $(/ usr / libexec / java_home)。
Oleksii Kyslytsyn

5

对于:

  • OS X:10.11.6

  • 爪哇:8

我确认@Morrie的答案。

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

但是,如果您正在运行容器,您的生活将会更加轻松


2
我认为这应该是一条评论。
Thunderforge

1
我不认为,因为有一个附加值,即`export JAVA_HOME =`。...你呢@Thunderforge
Abdennour TOUMI

在〜/ .bash_profile处导出JAVA_HOME = $(/ usr / libexec / java_home)。
Oleksii Kyslytsyn


-1

系统偏好设置,然后是Java控制面板,然后是Java然后是View,将显示当前安装的默认JRE的确切位置。


在〜/ .bash_profile处导出JAVA_HOME = $(/ usr / libexec / java_home)
Oleksii Kyslytsyn
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.