macos - Mac上JDK的路径是什么?

我只在工作中使用 Mac,我需要将 JAVA_HOME 设置为 JDK 的正确路径。我下载了JDK,安装了它,现在我在任何地方都找不到它。我在网上寻找解决方案,但没有文件夹 Libraries/Java。

最佳答案

该位置已从 Java 6(Apple 提供)更改为 Java 7 及更高版本(Oracle 提供)。找出这一点的最佳通用方法是运行

/usr/libexec/java_home

这是 native 支持的查找默认 Java 安装路径以及存在的所有替代安装路径的方法。

如果您查看它的帮助文本 (java_home -h),您会发现可以使用此命令在 OS X 上可靠地启动 Java 程序 (java_home --exec ...),能够明确指定所需的 Java 版本和架构,甚至在缺少时请求用户安装。

一种更普通的方法,但可以帮助您具体跟踪命令 java 解析为哪个 Java 安装,如下所示:

  1. 运行

    which java
    
  2. 如果这给了你类似 /usr/bin/java 的东西,这是一个指向真实位置的符号链接(symbolic link),运行

    ls -l `which java`
    

    在我的系统上,这个输出

    /usr/bin/java -> /Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home/bin/java
    

    您可以从中读取 Java 主目录;

  3. 如果 usr/bin/java 指向另一个符号链接(symbolic link),则递归地应用与

    相同的方法
    ls -l <whatever the /usr/bin/java symlink points to>
    

一个重要的变化是,如果您先安装 Apple 的 Java,然后再安装 Oracle 的,您将获得的设置。在这种情况下,上面的第 2 步将为您提供

/usr/bin/java -> /System/Library/Frameworks/JavaVM.framework/Commands/java

并且那个特定的 java 二进制文件是一个 stub ,它将通过查询 JAVA_HOME 环境变量来解析要调用的实际 java 命令,如果它没有设置或不指向 Java 主目录,将回退到调用 java_home。在调试设置时记住这一点很重要。

https://stackoverflow.com/questions/18144660/

相关文章:

java - @RequestParam 和 @PathVariable

java - 如何使用 apt-get 在 Ubuntu 18.04/17.04/16.10/16.

java - 如何在 Mac 上的 IntelliJ IDEA 中增加 IDE 内存限制?

java - 如何解决 “failed to lazily initialize a collect

java - 带有 JDBC : DBCP vs C3P0 的连接池选项

java - 为什么我可以在 Java 中抛出 null?

java - 如何对整数除法的结果进行四舍五入?

java - 如何在Java中为正则表达式转义文本

java - 在循环之前或循环中声明变量之间的区别?

java - Java中的接口(interface)命名