Como posso verificar se o JDK Java está instalado no Mac?

como é que se verifica se o SDK Java está instalado num Mac?

Há alguma linha de comando para isto?

 89
Author: Peter Mortensen, 2013-01-12

7 answers

 135
Author: , 2013-01-12 11:05:51

Você pode alavancar o binário auxiliar java_home em OS X para o que você está procurando.

Para listar todas as versões do JDK instalado:

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

Para solicitar o caminho JAVA_HOME de uma versão específica do JDK, você pode fazer:

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

Você poderia aproveitar os comandos acima no seu script assim:

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

Você pode ser capaz de fazer se-else e verificar para várias versões diferentes de java também.

Se preferir a saída XML, o java_home também tem a opção a-X para saída em 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.
 44
Author: Tuxdude, 2015-08-02 21:00:20

Tipo num terminal:

which javac
Deve mostrar-te algo como ...
/usr/bin/javac
 18
Author: asgoth, 2013-01-12 11:12:19

Apenas Tipo javac. Se estiver instalado, você recebe informações de uso, caso contrário, ele apenas perguntaria se você gostaria de instalar Java.

 1
Author: Hari Dattada, 2017-02-06 17:39:24

/usr/bin/java_home a ferramenta devolve 1 Se o java não estiver instalado.

Para que possa verificar se o java está instalado da seguinte forma:

/usr/libexec/java_home &> /dev/null && echo "installed" || echo  "not installed"
 1
Author: ramzes2, 2017-05-24 12:14:55

Certifique-se que define correctamente o JDK do projecto e reinicie o Intelij (reinício completo).

 0
Author: Luís Soares, 2018-06-11 18:42:31

Abaixo do comando funcionou muito bem:

javac -version

Também verifiquei manualmente navegando para a pasta Java no meu Mac

/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk
 0
Author: Mir Kazim Ali Tabrez, 2018-08-21 02:31:14