如何检查Mac电脑上是否安装了Java SDK?
有没有相应的命令行指令来进行检查?
javac -version
即可。OS X
上的 java_home
辅助二进制文件来实现您所需的功能。$ /usr/libexec/java_home -V
Matching Java Virtual Machines (2):
1.8.0_51, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home
1.7.0_79, x86_64: "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home
要请求特定JDK版本的JAVA_HOME路径,您可以执行以下操作:
$ /usr/libexec/java_home -v 1.7
/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home
$ /usr/libexec/java_home -v 1.8
/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home
REQUESTED_JAVA_VERSION="1.7"
if POSSIBLE_JAVA_HOME="$(/usr/libexec/java_home -v $REQUESTED_JAVA_VERSION 2>/dev/null)"; then
# Do this if you want to export JAVA_HOME
export JAVA_HOME="$POSSIBLE_JAVA_HOME"
echo "Java SDK is installed"
else
echo "Did not find any installed JDK for version $REQUESTED_JAVA_VERSION"
fi
$ /usr/libexec/java_home --help
Usage: java_home [options...]
Returns the path to a Java home directory from the current user's settings.
Options:
[-v/--version <version>] Filter Java versions in the "JVMVersion" form 1.X(+ or *).
[-a/--arch <architecture>] Filter JVMs matching architecture (i386, x86_64, etc).
[-d/--datamodel <datamodel>] Filter JVMs capable of -d32 or -d64
[-t/--task <task>] Use the JVM list for a specific task (Applets, WebStart, BundledApp, JNI, or CommandLine)
[-F/--failfast] Fail when filters return no JVMs, do not continue with default.
[ --exec <command> ...] Execute the $JAVA_HOME/bin/<command> with the remaining arguments.
[-R/--request] Request installation of a Java Runtime if not installed.
[-X/--xml] Print full JVM list and additional data as XML plist.
[-V/--verbose] Print full JVM list with architectures.
[-h/--help] This usage information.
在终端中输入:
which javac
它应该会显示类似于下面这样的内容
/usr/bin/javac
javac
程序。这与 Java 是否已安装无关。 - Radon Rosborough以下命令效果很好:
javac -version
我也通过在我的Mac上导航到Java文件夹来手动验证。
/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk
/usr/bin/java_home
工具如果 java 没有安装将返回 1。
因此,您可以通过以下方式检查是否已安装 java:
/usr/libexec/java_home &> /dev/null && echo "installed" || echo "not installed"
/usr/libexec/java_home
根本不存在,它会返回-127...所以这实际上可以双向工作;-) - Tom Hundt如果你正在使用Mac OS Big Sur,那么你可能会遇到Java安装混乱的问题。 我找到了一个解决该问题的文章: https://knasmueller.net/how-to-install-java-openjdk-15-on-macos-big-sur
sudo mv openjdk-15.0.2_osx-x64_bin.tar.gz /Library/Java/JavaVirtualMachines/
cd /Library/Java/JavaVirtualMachines/
sudo tar -xzf openjdk-15.0.2_osx-x64_bin.tar.gz
sudo rm openjdk-15.0.2_osx-x64_bin.tar.gz
注意:根据您下载的日期,可能是15.0.3或更高版本。
/usr/libexec/java_home -v15
并复制输出.bash_profile
或.zshrc
文件中,具体取决于您使用的shell。您的主目录(~/.bash_profile
或~/.zshrc
)中可能只有这些文件之一。JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-15.0.2.jdk/Contents/Home
source ~/.bash_profile
或source ~/.zshrc
java -v
运行以下命令以查看:
javac -version
您也可以手动验证,方法是转到特定位置,然后检查。要执行此操作,请在 Mac 终端中运行以下命令:
cd /Library/Java/JavaVirtualMachines/
然后再次在终端中运行 ls
命令。现在您可以看到计算机中存在的 JDK 版本和软件包了。
/usr/libexec/java_home
只需键入javac
。如果已安装,则会显示使用信息,否则它会询问您是否要安装Java。