我只在工作中使用 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 安装,如下所示:
运行
which java
如果这给了你类似 /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 主目录;
如果 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/