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á enauto 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:
Instale la alternativa para javac
$ sudo update-alternatives --install /usr/bin/javac javac /opt/java/jdk1.8.0_144/bin/javac 1
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