【问题标题】:How do I check if the Java JDK is installed on Mac?如何检查 Java JDK 是否安装在 Mac 上?
【发布时间】:2012-12-26 21:26:08
【问题描述】:

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

这个有命令行吗?

【问题讨论】:

  • " that software is not running" 错误输出是什么?

标签: macos java


【解决方案1】:

javac -version 在终端中就可以了

【讨论】:

  • 我得到了“javac 1.6.0_37”,它相当于 jdk 6 还是 7?
  • 但是,如果未安装 Java,则会出现一个对话框,告诉您需要安装 Java,因此这不是脚本的好选择。
  • 如果您收到“无法完成操作。无法找到 Java 运行时。有关安装 Java 的信息,请访问java.com。”,请访问oracle.com/java/technologies/javase-downloads.html 并下载 java jdk!
【解决方案2】:

您可以利用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 输出。

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

【讨论】:

    【解决方案3】:

    输入终端:

    which javac
    

    它应该显示类似的东西

    /usr/bin/javac
    

    【讨论】:

    • -1 答案:路径中存在 java 命令并不能证明已安装 JDK(但 JRE)
    • 我同意。我可以运行“which java”或“which javac”,但运行“java --version”时出现错误消息,因为未安装JDK。
    • -1 这是完全错误的。默认情况下,所有 Mac 都带有javac shim。它与是否安装 Java 无关。
    【解决方案4】:

    下面的命令效果很好:

    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"
      

      【讨论】:

        【解决方案6】:

        如果您在 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

        【讨论】:

          【解决方案7】:

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

          【讨论】:

            【解决方案8】:

            确保正确定义项目的 JDK 并重启 IntelliJ(完全重启)。

            【讨论】:

              【解决方案9】:
              • 打开终端。
              • 运行命令查看:

                javac-版本

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

                cd /Library/Java/JavaVirtualMachines/

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

              【讨论】:

                猜你喜欢
                • 2015-02-04
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2016-04-13
                • 2020-10-20
                • 2014-10-26
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多