¿Cuál es el comando para ver todas las versiones de Java instaladas en Linux?


36

Sé acerca de la versión de Java. No me importa qué versión estoy ejecutando actualmente . Me importa qué otras versiones están instaladas en mi Linux Box. Si es otro comando java - *, no lo vi en java -help.

He intentado buscarlo en Google, pero las respuestas son para Windows o dicen "use java -version". Sé que he hecho esto antes.

Respuestas:


50

En la mayoría de las distribuciones de Linux puede usar update-alternativesasí:

sudo update-alternatives --config java

Enumerará todos los paquetes que proporcionan el comando java y le permitirá cambiarlo. Si no quieres cambiarlo, simplemente hazlo Ctrl-C.

Solo hay un inconveniente: si instaló alguno que javano usa el administrador de paquetes oficial ( dpkg/ apt-get, rpm/ yum), pero simplemente lo extrajo, las alternativas de actualización no lo mostrarán.


2
¿Alguna razón para no usar update-alternatives --list javasolo para enumerarlos?
Xiao

44
@Xiao: lamentablemente, no todas las versiones de alternativas de actualización tienen --listopción. por ejemplo, Centos 6.7 no.
mvp

1
En RHEL 7, --list existe, pero no toma ningún otro parámetro, por lo que debe hacerlo| grep java
Dmitri

4

Podrías hacerlo:

find / -name java 

Para encontrar todos los archivos. El administrador de paquetes con su versión de Linux también debería poder enumerarlos.


3
"administrador de paquetes" ... a menos que alguien haya instalado una versión de Java manualmente. Find es un enfoque válido, aunque :) find / -type f -name java -print 2> / dev / null | xargs -i echo {} -version | bash
tink

@tink ¿Cómo usaría find con xargs pero agregaría una línea en blanco entre el resultado de cada versión cuando hay múltiples ejecutables 'java'?
Lee Meador

@LeeMeadorfind /usr -type f -name java -print 2>/dev/null | xargs -i echo {} -version | bash 2>&1 | sed ':a;N;$!ba;s/\n/\n\n/g'
tink

1

Dejas mucho que desear en lo que respecta a los detalles sobre tu configuración. Java se puede instalar de diferentes maneras en Linux. Puede instalar a través de su administrador de paquetes de distribuciones, como apt, yum, yast, o puede instalarlo manualmente.

Cada vez que lo instaló, una instalación de Java necesita que el ejecutable de Java funcione bien en la mayoría de los casos, por lo que puede usar los comandos de localizar o buscar para encontrar los diferentes.

Ejemplo que probablemente encontrará enlaces y duplicados, pero los nombres de directorio deberían ayudarlo a identificarlo:

for f in $(locate -ber '^java$'); do test -x && echo "$f"; done

1

Lo uso para enumerar las instalaciones de Java disponibles:

sudo update-alternatives --display java

bash: update-alternatives: command not found?
Jimmy Obonyo Abor

1

Anteriormente estaba usando lo siguiente para determinar la instalación de Java 8 para una aplicación que necesitaba un conjunto de variables de entorno para que pudiera usar una versión de Java que no estaba configurada como predeterminada:

update-java-alternatives -l java-8-oracle

Sin embargo, eso dejó de funcionar hoy. El update-java-alternativesscript / programa ya no está instalado en mi sistema Ubuntu 14.04. Lo que está instalado ahora es alternatives.

Lo que uso ahora para obtener una ruta Java alternativa específica es:

alternatives --display java | grep priority | grep jdk-1.8

Entonces puedo dar masajes al resultado para obtener lo que necesito para la variable de entorno de mi aplicación.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.