¿Cómo se detecta si Java está instalado sin activar un aviso visual?

2

En la mayoría de los sistemas, uno solo ejecutaría java -version y un código de retorno distinto de cero indicaría que Java no está instalado.

Uno podría hacer esto en OS X, pero aparece un aviso de molestia para preguntar al usuario si desea instalar Java.

Esto es irritante en los scripts automatizados.

¿Cómo se puede detectar si Java está instalado en una Mac, sin obtener la ventana emergente?

    
pregunta Brian M. Hunt 06.11.2014 - 20:50

2 respuestas

1

Toda la instalación de Java más reciente /usr/libexec/java_home que se utiliza para seleccionar entre varias instalaciones de Java en una máquina. Las pruebas de su existencia y la salida del comando son buenas maneras de ver si Java está instalado sin activar la ventana emergente.

if [[ -e /usr/libexec/java_home ]]; then
    JAVA_HOME=$(/usr/libexec/java_home)
else
    echo "Java not installed"
fi

También puede usarlo para buscar una versión específica de Java. Por ejemplo:

|ruby-2.1.1| cortana in ~
○ → /usr/libexec/java_home -v 1.6
/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

|ruby-2.1.1| cortana in ~
○ → /usr/libexec/java_home -v 1.7
/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home

|ruby-2.1.1| cortana in ~
○ → /usr/libexec/java_home -v 1.8
/Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home
    
respondido por el Ian C. 07.11.2014 - 00:34
1

rtrouton tiene algunos grandes ejemplos en su sitio web de derflounder . Los ejemplos se utilizan como atributos de extensión en una suite mdm, solo elimine las etiquetas de resultados de ellos. A continuación se muestra un script que busca la carpeta de instalación de java, si existe, hace eco de la versión si no se hace eco no está instalado. A cambio, esto nunca activa el comando java que mantiene el menú emergente alejado.

if [[ -e /Library/Java/Home ]]; then
    echo "$(java -version 2>&1 | awk '/version/{print $3}' | sed 's/"//g')"
        else
    echo "Java not installed"
fi
    
respondido por el tron_jones 07.11.2014 - 00:29

Lea otras preguntas en las etiquetas