我正在使用SSH客户端.我还在运行环境变量
echo $ JAVA_HOME没有返回任何内容.我想在unix中找到安装java的确切位置.有没有其他命令可以帮助我这个?
该which命令为您提供java二进制文件的路径:
which java
Run Code Online (Sandbox Code Playgroud)
但是如果它只是一个符号链接(例如被 使用alternatives),这将无法获得二进制文件的真实路径。您可以使用 with 列出符号链接指向的位置ls -l:
ls -l `which java`
Run Code Online (Sandbox Code Playgroud)
这对我来说输出
/usr/bin/java -> /etc/alternatives/java
Run Code Online (Sandbox Code Playgroud)
然后按照符号链接,直到您到达源头。或者,如果您的系统上可用,请readlink结合使用-f以下符号链接的命令:
readlink -f `which java`
Run Code Online (Sandbox Code Playgroud)
编辑:Ankit 在评论中写道,这readlink不是标准的 UNIX 命令,-f而且似乎也不适用于 mac,因此这可能不是您的选择,尽管此页面描述了如何greadlink通过 mac 在 mac 上获得此功能brew:
brew install coreutils greadlink -f
which java
既然echo $JAVA_HOME没有给你路径,这个变量可能还没有设置.相反,哪个命令会给你路径.
which java
Run Code Online (Sandbox Code Playgroud)
请注意,如果命令是a,这可能无法提供确切的位置symlink.如果是这种情况,则必须symlink通过其他方法解决.说readlink或通过python(os.path.realpath(path))