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


Answers:


183

javac -version 在终端会做


我得到了“ javac 1.6.0_37”,它相当于jdk 6或7?
愤怒的猕猴桃

7
但是,如果未安装Java,则会出现一个对话框,提示您需要安装Java,因此这不是脚本的好选择。
支付的书呆子

70

您可以根据需要使用java_home辅助二进制文件OS X

要列出已安装的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输出。

$ /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.

17

输入终端:

which javac

它应该显示类似

/usr/bin/javac

12
-1的答案:路径中存在Java命令并不能证明已安装JDK(但已安装JRE)
Luigi R. Viggiano 2013年

我同意。我可以运行“哪个java”或“哪个javac”,但是由于未安装JDK,因此在运行“ java --version”时收到错误消息。
fanchyna

1
-1这是完全错误的。javac默认情况下,所有Mac均带有垫片。它与是否安装Java无关。
Radon Rosborough


2

/usr/bin/java_home 如果未安装Java,则该工具返回1。

因此,您可以通过以下方式检查是否安装了Java:

/usr/libexec/java_home &> /dev/null && echo "installed" || echo  "not installed"

1

只需键入javac。如果已安装,则会获得使用情况信息,否则只会询问您是否要安装Java。



0
  • 打开终端。
  • 运行命令查看:

    javac-版本

  • 您也可以通过转到特定位置然后进行检查来手动进行验证。为此,请在mac终端中的以下命令中运行

    cd /库/ Java / JavaVirtualMachines /

然后ls在终端中再次运行命令。现在,您可以查看计算机中是否存在jdk版本和软件包。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.