如何在Mac上检查Java JDK是否已安装?

192

如何检查Mac电脑上是否安装了Java SDK?

有没有相应的命令行指令来进行检查?


"那个软件没有运行"。错误输出是什么? - Andrew Thompson
11个回答

263
在终端中输入 javac -version 即可。

4
我的"javac 1.6.0_37"是否等同于jdk 6还是7? - angry kiwi
12
但是,如果没有安装Java,会弹出一个对话框告诉您需要安装Java,因此对于脚本而言这不是一个好的选择。 - a paid nerd
4
如果您收到“操作无法完成。无法找到Java Runtime。请访问http://www.java.com 以获取有关安装Java的信息。”的提示,请前往https://www.oracle.com/java/technologies/javase-downloads.html并下载Java JDK! - Delicia Fernandes
这里没有显示任何SDK路径,只在我的macOS 12.1上显示了Java运行时版本,这是因为我没有安装SDK吗? - dragonfly02
要显示Java JDK安装的路径,请使用命令“which javac”。关于版本命名,Java 8是Java 1.8,其中8是版本号,而1.8是版本字符串。 - Arya Mohanan

107
您可以利用 OS X 上的 java_home 辅助二进制文件来实现您所需的功能。
列出所有已安装 JDK 的版本:
$ /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

你可能能够使用if-else语句来检查多个版本的Java。如果你更喜欢XML格式的输出,java_home也可以使用-X选项来输出XML格式的内容。请注意,本文中的HTML标签已被保留。
$ /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.

这正是我需要找到我的Java版本路径的东西。 - MasterPiece

16

在终端中输入:

which javac

它应该会显示类似于下面这样的内容

/usr/bin/javac

22
Java命令在路径中的存在并不意味着JDK已安装(只是JRE)。 - Luigi R. Viggiano
2
我同意。我可以运行“which java”或“which javac”,但是当我运行“java --version”时,因为JDK未安装而收到错误消息。 - fanchyna
6
这完全是错误的。所有的 Mac 默认都带有一个 javac 程序。这与 Java 是否已安装无关。 - Radon Rosborough
有16个人说这个答案有帮助,尽管它是不正确的。 - habrewning

10

以下命令效果很好:

javac -version

我也通过在我的Mac上导航到Java文件夹来手动验证。

/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk

5

/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

3

如果你正在使用Mac OS Big Sur,那么你可能会遇到Java安装混乱的问题。 我找到了一个解决该问题的文章: https://knasmueller.net/how-to-install-java-openjdk-15-on-macos-big-sur

  1. https://jdk.java.net/15/上下载JDK的.tar.gz文件。
  2. 进入下载文件夹,并运行以下命令(将.tar.gz文件移动,解压缩并在解压后删除它):
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或更高版本。

  1. 运行/usr/libexec/java_home -v15并复制输出
  2. 将此行添加到您的.bash_profile.zshrc文件中,具体取决于您使用的shell。您的主目录(~/.bash_profile~/.zshrc)中可能只有这些文件之一。
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-15.0.2.jdk/Contents/Home
  1. 保存更改并立即使其生效,请运行以下命令:source ~/.bash_profilesource ~/.zshrc
  2. 检查Java是否正常工作 - 运行java -v

3
  • 打开终端。
  • 运行以下命令以查看:

    javac -version

  • 您也可以手动验证,方法是转到特定位置,然后检查。要执行此操作,请在 Mac 终端中运行以下命令:

    cd /Library/Java/JavaVirtualMachines/

然后再次在终端中运行 ls 命令。现在您可以看到计算机中存在的 JDK 版本和软件包了。


2
在 MAC 上找到 JDK 路径,执行以下命令。
/usr/libexec/java_home

1

只需键入javac。如果已安装,则会显示使用信息,否则它会询问您是否要安装Java。


1

如果你只想检查Java是否已经安装,

只需在终端上输入java

如果你还想知道版本信息,

则在终端上输入java -version

结果将会显示如下:

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接