How do I check if the Java JDK is installed on Mac?

前端 未结 9 684
误落风尘
误落风尘 2021-01-29 21:48

How do you check if Java SDK is installed on a Mac?

Is there a command line for this?

相关标签:
9条回答
  • 2021-01-29 22:09

    javac -version in a terminal will do

    0 讨论(0)
  • 2021-01-29 22:09

    Below command worked out pretty good:

    javac -version
    

    I also manually verified by navigating to the Java Folder on my Mac

    /Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk
    
    0 讨论(0)
  • 2021-01-29 22:12

    You can leverage the java_home helper binary on OS X for what you're looking for.

    To list all versions of installed 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
    

    To request the JAVA_HOME path of a specific JDK version, you can do:

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

    You could take advantage of the above commands in your script like this:

    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
    

    You might be able to do if-else and check for multiple different versions of java as well.

    If you prefer XML output, java_home also has a -X option to output in 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.
    
    0 讨论(0)
  • 2021-01-29 22:17

    Type in a terminal:

    which javac
    

    It should show you something like

    /usr/bin/javac
    
    0 讨论(0)
  • 2021-01-29 22:21

    /usr/bin/java_home tool returns 1 if java not installed.

    So you can check if java is installed by the next way:

    /usr/libexec/java_home &> /dev/null && echo "installed" || echo  "not installed"
    
    0 讨论(0)
  • 2021-01-29 22:27

    Just type javac. If it is installed you get usage information, otherwise it would just ask if you would like to install Java.

    0 讨论(0)
提交回复
热议问题