在 OSX 上,在终端中使用以下命令:
echo $PATH
给出以下输出:
/Library/Frameworks/Python.framework/Versions/2.7/bin:/Library/Frameworks/Python.framework/Versions/3.4/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/Applications/Android Studio.app/sdk/platform-tools
您可以看到其中没有对 JAVA 的引用。但是在终端中,当我输入:
java
它被视为有效命令并输出:
用法:java [-options] class [args...](执行类)或 java [-options] -jar jarfile [args...](执行 jar 文件),其中选项包括:-d32 如果可用,使用 32 位数据模型 -d64 如果可用,使用 64 位数据模型 -server 选择“服务器”VM 默认 VM 是服务器,因为您正在服务器类机器上运行。
我的问题是,如果我的 PATH 变量中没有引用我的 java 命令,并且我的终端实例当前正在探索的目录中也没有引用它,那么它如何识别我的 java 命令?
感谢您的帮助。
答案1
在我的 OSX 10.9.4 系统上,Java 位于 /usr/bin 中:
$ which java
/usr/bin/java
该目录也位于您的命令路径中。
/usr/bin 中的条目是一个符号链接。也许您期望实际的 java 安装目录位于您的路径中,但事实并非如此。在 /usr/bin 中创建符号链接是一种常见做法。
$ ls -l /usr/bin/java
lrwxr-xr-x 1 root wheel 74 May 17 17:02 /usr/bin/java ->
/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java