【问题标题】:Where is Java Installed on Mac OS X?Mac OS X 上的 Java 安装在哪里?
【发布时间】:2013-03-27 09:53:58
【问题描述】:

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

本以为在/Library/Java/JavaVirtualMachines/文件夹里面,会有一个叫1.7.0.jdk之类的文件夹,结果发现文件夹是空的。这已通过在终端中运行 ls /Library/Java/JavaVirtualMachines/ 得到确认。我已经尝试搜索它以了解它是否安装在其他地方,但这似乎没有任何问题。

谁能告诉我 Java 在我的 Mac 上安装在哪里?

【问题讨论】:

标签: java macos


【解决方案1】:

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

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

【讨论】:

  • 我之所以遇到这个问题,是因为我在我的 mac 上的 eclipse 中遇到了错误,因为我在程序“import java.util.*”的第一行遇到了错误。我强烈怀疑这是因为 java 路径设置不正确或其他原因(即使我之前设置过一次)。我在这个答案中输入了命令,我得到了一个目录。我可以将该目录粘贴到“本机库文件夹配置”窗口中的文本框中吗?还是这个目录属于其他地方?
  • export JAVA_HOME=`/usr/libexec/java_home` 添加到 .bash_profile 中,因此始终设置 JAVA_HOME(注意 libexec 命令周围的反引号)
  • 如果你只想知道你的mac上是否安装了JDK,省略版本号并从终端运行:$ echo $(/usr/libexec/java_home)
  • 在 Mac 10.12.3 上,我们应该 /usr/libexec/java_home -- v 显示最新版本的 java
  • 请注意,macOS Big Sur 改变了 java_home 命令的行为。不,如果 JAVA_HOME 环境变量已经设置为一个有效的 JDK,它会返回,它会忽略 -v 参数。如果 JAVA_HOME 设置为无效文件夹,则 java_home 命令根本不起作用。要获得合理的输出,您必须在调用 /usr/libexec/java_home 之前取消设置 JAVA_HOME
【解决方案2】:

你可以使用

/usr/libexec/java_home

终端中的命令以了解 Java 的安装路径。

【讨论】:

  • 我比接受的答案更喜欢这个解决方案,因为它独立于安装的 JVM 版本。
  • 这没有找到我的 Oracle 安装的 java 8 版本。
  • 你为什么有echo $(...)?不只是/usr/libexec/java_home 做同样的事情吗?
  • 接受的答案对我不起作用,但这有效! (我通常不是 mac/unix 用户)
  • @PaŭloEbermann 如果没有美元符号和括号,它对我不起作用。
【解决方案3】:

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

【讨论】:

  • 对我来说,它在/Library/Java/JavaVirtualMachines/jdk1.7.0_60.jdk 下(知道JDK 1.6 的路径是:/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/
  • 在 ~/.bash_profile 处导出 JAVA_HOME=$(/usr/libexec/java_home)
【解决方案4】:

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

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

【讨论】:

  • 你不应该依赖这个现有的。如果您需要 JRE,请捆绑在您自己的应用程序中。
  • 使用包含空格字符的路径设置 JAVA_HOME 具有挑战性!我没有成功……
  • 您可以在某处创建指向此目录的链接并将 JAVA_HOME 设置为该链接
  • 这似乎是“Java”系统偏好设置面板的安装位置。
  • @AntoineRosset,你可以这样设置:export JAVA_HOME=/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
【解决方案5】:

使用 unix find 功能查找已安装的 javas...

sudo find / -name java

【讨论】:

  • 您不需要 sudo 来运行 find 以获得通常可访问的命令。如果您不想看到有关不可访问目录的错误消息,请删除这些消息,而不是不必要地使用 root 权限。一直使用 sudo 是一个坏习惯。将stderr重定向到/dev/null,像这样:find / -name java 2> /dev/null
  • 如果我也需要在无法访问的目录下查看该怎么办?
  • Walter 的观点是 java 二进制文件将是世界可读的,因此 sudo 不是必需的。你的回答还是有用的:)
  • 是的,我就是用这个找到src.zip(java jdk的源码)
  • 在 ~/.bash_profile 处导出 JAVA_HOME=$(/usr/libexec/java_home)
【解决方案6】:

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

转到

1) /Library,即 Macintosh HD/Library

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

3) 所以最终路径是

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

希望这对某人有所帮助。

【讨论】:

  • 当您必须从 IDE 显式指向 JDK 时非常有用。谢谢
  • 我有多稠密?我的终端说我在 /Library/Java/JavaVirtualMachines/ 中安装了 2 个 jdk,但是当我在 finder 中导航到该目录时找不到它们......我能得到多大的密度......
  • @SoftwareSavant,请参考stackoverflow.com/a/14875241 答案,可能对您有所帮助。
【解决方案7】:

如果你输入

java -verbose 

这也给出了加载 jar 的位置,因此也给出了 java 路径。

【讨论】:

  • 我在 ~/.bash_profile 添加了 export JAVA_HOME=$(/usr/libexec/java_home)。
【解决方案8】:

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

【讨论】:

  • 这会从路径中删除所有其他内容吗?仅当您只使用 Java 而系统中没有其他内容时才这样做。
  • 在 ~/.bash_profile 处导出 JAVA_HOME=$(/usr/libexec/java_home)。
【解决方案9】:

/Library/Java/JavaVirtualMachines/
在转到文件夹中 --> 进入 Finder

【讨论】:

  • 好的,我刚试过这个,我设法导航到目录。为什么我不能在 Finder 中正常导航到该文件夹​​?这只是 Apple 更烦人吗...更烦人的是,Gradle 4.3 版不适用于除 Java 8 之外的任何 Java 版本
  • 在 ~/.bash_profile 处导出 JAVA_HOME=$(/usr/libexec/java_home)
【解决方案10】:

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

欲了解更多信息:a link

【讨论】:

  • 这将是最新版本的别名,一旦安装,它将正确指向 Java 7 SDK。
  • 此链接仅用于遗留用途,不会通过安装 Java 7 进行更新。请勿使用此路径。
  • 我在 ~/.bash_profile 更新了 export JAVA_HOME=$(/usr/libexec/java_home)。
【解决方案11】:

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

【讨论】:

  • 是的,在 ~/.bash_profile 导出 JAVA_HOME=$(/usr/libexec/java_home)。
【解决方案12】:

对于:

  • OS X:10.11.6

  • Java : 8

我确认@Morrie 的回答。

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

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

【讨论】:

  • 我认为这应该是一条评论。
  • 我不认为,因为有一个附加值是`export JAVA_HOME=`。 ...你呢@Thunderforge
  • 在 ~/.bash_profile 处导出 JAVA_HOME=$(/usr/libexec/java_home)。
【解决方案13】:

我刚刚安装了 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)
【解决方案14】:

我尝试了 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 的想法,它现在可以启动并运行了

【讨论】:

  • 在 ~/.bash_profile 处导出 JAVA_HOME=$(/usr/libexec/java_home)。
【解决方案15】:

如果您安装了多个 Java 版本,请使用:

$ /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

【讨论】:

    【解决方案16】:

    如果您使用的是sdkman

    您可以通过sdk home java <installed_java_version>查看它

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

    你可以通过

    获取你安装的java版本
    $ sdk list java
    

    【讨论】:

      【解决方案17】:

      尝试在这里签到
      /Library/Java/JavaVirtualMachines

      【讨论】:

        【解决方案18】:

        系统偏好设置、Java 控制面板、Java 和查看将显示当前安装的默认 JRE 的确切位置。

        【讨论】:

        • 在 ~/.bash_profile 处导出 JAVA_HOME=$(/usr/libexec/java_home)
        【解决方案19】:

        MacOS BigSur

        在 .zshrc 文件下添加以下内容。如果 .zshrc 不存在,则创建并添加。

        export JAVA_HOME=`/usr/libexec/java_home`
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-12-08
          • 1970-01-01
          • 2012-12-04
          • 2010-10-15
          • 1970-01-01
          • 2011-07-28
          相关资源
          最近更新 更多