update por jdk how cambiar alternatives java debian

por - Cómo usar el comando update-alternatives--config java



update java alternatives-- list (5)

Eche un vistazo a https://wiki.debian.org/JavaPackage En la parte inferior de esta página, se describe otro método usando un comando del paquete java-common

Estoy instalando Apache Solr en Linux Debian (Squeeze). Me han indicado que instale sun-java jdk primero. Luego me dijeron que debería usar el comando sudo update-alternatives --config java para asegurarme de que un java en particular (sun-java) es el tiempo de ejecución predeterminado. Sin embargo, cuando ejecuto este comando obtengo:

There are 3 choices for the alternative java (providing /usr/bin/java). Selection Path Priority Status ------------------------------------------------------------ * 0 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 auto mode 1 /usr/bin/gij-4.4 1044 manual mode 2 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 manual mode 3 /usr/lib/jvm/java-6-sun/jre/bin/java 63 manual mode Press enter to keep the current choice[*], or type selection number:

Entonces, ¿qué número debo seleccionar para tener Sun-Java como el tiempo de ejecución predeterminado? Además, ¿qué significa exactamente el modo auto y manual? Si selecciono 3 arriba y ejecuto el comando update-alternative, recibo el mismo resultado que el anterior, de nuevo, nada parece haber cambiado, excepto que * está ahora en frente del 3, aunque todavía lee el modo manual.

¿Hay alguna forma de confirmar que lo que hice es correcto?


Hay muchos otros binarios que deben vincularse, por lo que creo que es mucho mejor probar algo como sudo update-alternatives --all y elegir las alternativas correctas para todo lo demás además de java y javac .


Notará un gran cambio al seleccionar opciones si escribe "java -version" después de hacerlo. Entonces, si ejecuta update-alternatives --config java y selecciona la opción 3 , estará usando la implementación de Sun.
Además, en lo que respecta al modo auto frente al manual mode , al hacer una selección, se debe sacar del auto mode por esta página, indicando:

Al usar la opción --config , las alternativas enumerarán todas las opciones para el grupo de enlace cuyo nombre es el enlace maestro. Luego se le preguntará cuál de las opciones usar para el grupo de enlaces. Una vez que realice un cambio, el grupo de enlaces ya no estará en auto mode . Tendrá que usar la opción --auto para volver al estado automático.

Y creo que el auto mode está configurado cuando instala el primer / único JRE / JDK.


Suponiendo que uno ha instalado un JDK en /opt/java/jdk1.8.0_144 entonces:

  1. Instale la alternativa para javac

    $ sudo update-alternatives --install /usr/bin/javac javac /opt/java/jdk1.8.0_144/bin/javac 1

  2. Verificar / actualizar la configuración de alternativas:

    $ sudo update-alternatives --config javac

Si solo hay una alternativa única para javac , recibirá un mensaje que lo diga, de lo contrario, seleccione la opción para el nuevo JDK.

Para verificar que todo esté configurado correctamente, entonces:

$ which javac /usr/bin/javac $ ls -l /usr/bin/javac lrwxrwxrwx 1 root root 23 Sep 4 17:10 /usr/bin/javac -> /etc/alternatives/javac $ ls -l /etc/alternatives/javac lrwxrwxrwx 1 root root 32 Sep 4 17:10 /etc/alternatives/javac -> /opt/java/jdk1.8.0_144/bin/javac

Y finalmente

$ javac -version javac 1.8.0_144

Repita para java, keytool, jar, etc. según sea necesario.


update-alternatives es problemático en este caso, ya que te obliga a actualizar todos los elementos según el JDK.

Para este propósito específico, el paquete java-common contiene una herramienta llamada update-java-alternatives .

Es fácil de usar. Primero enumere las instalaciones de JDK disponibles en su máquina:

root@mylaptop:~# update-java-alternatives -l java-1.7.0-openjdk-amd64 1071 /usr/lib/jvm/java-1.7.0-openjdk-amd64 java-1.8.0-openjdk-amd64 1069 /usr/lib/jvm/java-1.8.0-openjdk-amd64

Y luego recoge uno:

root@mylaptop:~# update-java-alternatives -s java-1.7.0-openjdk-amd64