2012-10-08 120 views
30

Estoy instalando Apache Solr en Linux Debian (Squeeze). Me han indicado que instale sun-java jdk primero. Luego me dicen que debo 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 me sale:Cómo usar el comando update-alternatives --config java

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 que el sol java como el tiempo de ejecución por defecto? Además, ¿qué significan exactamente los modos automático 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 manera de confirmar que lo que hice es correcto?

Respuesta

26

Notará un gran cambio al seleccionar opciones si escribe "java -version" después de hacerlo. Por lo tanto, si ejecuta update-alternatives --config java y selecciona la opción 3, utilizará la implementación Sun.
Además, con respecto a auto vs manual mode, hacer una selección debería sacarlo de auto mode por this page indicando:

Al utilizar la opción --config, alternativas, aparecerá una lista de todos los opciones para el grupo de enlace de las cuales el nombre de pila es el enlace maestro. Usted se le preguntará cuál de las opciones usar para el grupo de enlace . Una vez que realice un cambio, el grupo de enlaces ya no estará en auto mode. Tendrá que utilizar la opción --auto para devolver al estado automático.

Y creo que auto mode se establece cuando instala el primer/único JRE/JDK.

3

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

6

update-alternatives es problemático en este caso, ya que obliga a actualizar todos los elementos en función del JDK.

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

Es fácil de usar. Primera lista instala el JDK disponible en su máquina:

[email protected]:~# 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 recoger uno:

[email protected]:~# update-java-alternatives -s java-1.7.0-openjdk-amd64 
0

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

  1. Instalar la alternativa para javac

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

  1. actualización/comprobación de la configuración de las alternativas:

sudo update-alternatives --config javac

Si sólo hay una única alternativa para javac obtendrá un mensaje que dice así, de lo contrario seleccione la opción para el nuevo JDK.

Para comprobar todo está configurado correctamente, entonces:

el que javac /usr/bin/javac

ls -l/usr/bin/javac lrwxrwxrwx 1 raíz de la raíz 23 de Sep 4 17:10/usr/bin/javac ->/etc/alternatives/javac

ls -l/etc/alternatives/javac lrwxrwxrwx 1 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

yay!

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

Cuestiones relacionadas