En la mayoría de los sistemas, uno simplemente se 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 mensaje molesto para preguntarle 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?
$ java -version java version "1.6.0_65" Java(TM) SE Runtime Environment (build 1.6.0_65-b14-466.1-11M4716) Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-466.1, mixed mode)
Respuestas:
Toda la instalación de Java más reciente
/usr/libexec/java_home
que se utiliza para seleccionar entre múltiples instalaciones de Java en una máquina. La prueba de su existencia y la salida del comando son buenas maneras de ver si Java está instalado sin activar la ventana emergente.También puede usarlo para buscar una versión específica de Java. Por ejemplo:
fuente
/usr/libexec/java_home
existe al menos en Mavericks, pero que al ejecutarlo proporciona un código de retorno distinto de cero, que luego se puede probar (ya que presumiblemente el código de retorno es 0 cuando se encuentra un Java)rtrouton tiene algunos excelentes ejemplos en su sitio web derflounder . Los ejemplos se usan como atributos de extensión en una suite mdm, simplemente 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 echo la versión, si no echo, no está instalada. Esto, a cambio, nunca activa el comando java que mantiene alejada la ventana emergente.
fuente