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

Thu*_*rge 691 java macos

我刚刚从下载在Mac OS 10.7.5的Java 7u17 这里,然后安装成功.为了做一些JNI编程,我需要知道在Mac上安装Java的位置.

我以为在/Library/Java/JavaVirtualMachines/文件夹里面会有一个名为1.7.0.jdk或者什么的文件夹,但后来我发现文件夹是空的.通过ls /Library/Java/JavaVirtualMachines/终端运行证实了这一点.我已经尝试搜索它以查明它是否安装在其他地方,但这似乎并没有改变任何东西.

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

ger*_*tan 1337

/usr/libexec/java_home -v 1.8在终端shell上使用命令来确定java 1.7主目录的位置

如果您只想查找最新版本java的主目录,请省略该版本.例如/usr/libexec/java_home

  • 添加了`export JAVA_HOME = \`/ usr/libexec/java_home \``到.bash_profile,所以总是设置JAVA_HOME(注意libexec命令后面的后退) (43认同)
  • 在Mac 10.12.3上,我们应该`/ usr / libexec / java_home-v`以显示Java的最新版本。 (3认同)
  • 如果您只想知道您的 Mac 上是否安装了 JDK,请省略版本号并从终端运行: $ echo $(/usr/libexec/java_home) (2认同)
  • 请注意,macOS Big Sur 更改了 java_home 命令的行为。不,如果 JAVA_HOME 环境变量已设置为有效的 JDK(这就是它将返回的全部内容),它将忽略 -v 参数。如果 JAVA_HOME 设置为无效文件夹,则 java_home 命令将根本不起作用。为了获得合理的输出,您必须在调用 `/usr/libexec/java_home` 之前取消设置 JAVA_HOME (2认同)

Pav*_*ara 106

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

  • 你为什么在那里有`echo $(...)`?不只是`/ usr/libexec/java_home`做同样的事情吗? (11认同)
  • 我比接受的答案更喜欢这个解决方案,因为它独立于安装的JVM版本. (7认同)

Thu*_*rge 80

事实证明我实际安装了Java 7 JRE,而不是JDK.正确的下载链接在这里.安装后,jdk1.7.0jdk显示在JavaVirtualMachines目录中.

  • 对我来说,它位于`/ Library/Java/JavaVirtualMachines/jdk1.7.0_60.jdk`下(知道对于JDK 1.6,路径是:`/ System/Library/Java/JavaVirtualMachines/1.6.0.jdk /`) (45认同)
  • 导出 JAVA_HOME=$(/usr/libexec/java_home) 在 ~/.bash_profile (2认同)

Mor*_*rie 35

如果您只安装JRE,它似乎放在:

/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
Run Code Online (Sandbox Code Playgroud)

  • 你不应该依赖这个现有的。如果您需要 JRE,请在您自己的应用程序中捆绑。 (3认同)
  • @AntoineRosset,你可以这样设置:`export JAVA_HOME =/Library/Internet\Plug-Ins/JavaAppletPlugin.plugin/Contents/Home` (2认同)

小智 23

使用unix find函数查找已安装的javas ...

sudo find / -name java
Run Code Online (Sandbox Code Playgroud)

  • 您不需要sudo来运行find以获取通常可访问的命令.如果您不希望看到有关不可访问目录的错误消息,请删除消息,而不是不必要地使用root权限.一直使用sudo是一个坏习惯.将stderr重定向到/ dev/null,如下所示:find/-name java 2>/dev/null (19认同)
  • Walter的观点是`java`二进制文件将是世界可读的,因此不需要`sudo`.你的答案仍然有用:) (2认同)

Der*_*Lee 22

您可能没有意识到,您可能安装了多个 Java 版本。

要列出Mac 上所有已安装 JVM的版本、体系结构和文件夹位置:

$ /usr/libexec/java_home --verbose

或者:

$ /usr/libexec/java_home -V(这是一个大写的V!)

示例输出:

$ /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
Run Code Online (Sandbox Code Playgroud)


Jay*_*kar 20

试试这个,在Mac OS X中找到java安装路径的简单方法,

1)/ Library即Macintosh HD/Library

在此输入图像描述

2)单击Library,找到Java文件夹.

在此输入图像描述

3)所以最后的道路是

/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home
Run Code Online (Sandbox Code Playgroud)

希望这对某人有帮助.

  • 当您必须从 IDE 显式指向 JDK 时,这非常有用。谢谢 (2认同)

小智 18

Mac OS的Java包结构与Windows略有不同.不要为此感到不安,因为开发人员只需要设置PATHJAVA_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
Run Code Online (Sandbox Code Playgroud)

  • 这会从路径中删除其他所有内容吗?只有在系统中只使用Java而不使用其他任何内容时才执行此操作. (12认同)

jon*_*pat 12

如果您输入

java -verbose 
Run Code Online (Sandbox Code Playgroud)

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


man*_*nny 8

编辑:当前java版的别名是 /Library/Java/Home

有关更多信息:链接

  • 此链接仅出于旧目的而存在,并且不会通过安装 Java 7 进行更新。请勿使用此路径。 (2认同)

Min*_*wzy 8

只需写入/Library/Java/JavaVirtualMachines/
Go to Folder - > Go in Finder


Abd*_*UMI 8

为了 :

  • OS X:10.11.6

  • 爪哇:8

我确认@Morrie 的回答。

   export JAVA_HOME=/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home;
Run Code Online (Sandbox Code Playgroud)

但是如果你运行容器,你的生活会更轻松

  • 我认为这应该是一个评论。 (2认同)

Pra*_*yal 8

输入which java终端以显示它的安装位置。

  • 是的,在 ~/.bash_profile 中导出 JAVA_HOME=$(/usr/libexec/java_home) 。 (2认同)

小智 6

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


Meh*_*hdi 5

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