Buscar aquí

30 mayo 2013

Cambiar la version de java con alternatives???


Un clásico problema es que Linux trae instalado el java de OpenJDK y por razones de compatibilidad con varios programas, necesito instalar la maquina virtual de Oracle (SUN).  Ahora si se intenta hacer un remove de OpenJDK, se borrará libreoffice y otros tantos programas, por eso, usar alternatives es una buena opción.

Primero, si se ve la versión actual de java veremos:

[root@laptop ~]# java -version
java version "1.7.0_b147-icedtea"
OpenJDK Runtime Environment (fedora-2.1.fc17.6-x86_64)
OpenJDK 64-Bit Server VM (build 22.0-b10, mixed mode

Después instalar la maquina virtual que queremos de Oracle -SUN-.

Si queremos saber dónde está instalada esta versión de java o cuales están instaladas es fácil ejecutar

[root@laptop ~]#alternatives --display java

Esto arroja un listado largo con todas las versiones instaladas y posibles de utilizar.

Ahora hay que "instalar" esta nueva máquina a alternatives y se hace así:

[root@laptop ~]#alternatives --install "/usr/bin/java" java /usr/java/jre1.7.0_21/bin/java 100

 - "/usr/bin/java", es el nombre del programa que se pone en /usr/bin
 - java, es el nombre de la agrupación en alternatives.
 - /usr/java/jre1.7.0_21/bin/java, es la ruta completa al binario de java.
 - 100, es la prioridad que le daremos a esto... da igual el número.



[root@laptop ~]# java -version
java version "1.7.0_21"
Java(TM) SE Runtime Environment (build 1.7.0_21-b11)
Java HotSpot(TM) 64-Bit Server VM (build 23.21-b01, mixed mode)


Para instalar una nueva versión JDK completa, se puede usar el comando:

alternatives --install "/usr/bin/java" java  /usr/java/jdk1.8.0_202/jre/bin/java 100 \
--slave /usr/bin/keytool keytool /usr/java/jdk1.8.0_202/bin/keytool \
--slave /usr/bin/orbd orbd /usr/java/jdk1.8.0_202/bin/orbd \
--slave /usr/bin/pack200 pack200 /usr/java/jdk1.8.0_202/bin/pack200 \
--slave /usr/bin/rmid rmid /usr/java/jdk1.8.0_202/bin/rmid \
--slave /usr/bin/rmiregistry rmiregistry /usr/java/jdk1.8.0_202/bin/rmiregistry \
--slave /usr/bin/servertool servertool /usr/java/jdk1.8.0_202/bin/servertool \
--slave /usr/bin/tnameserv tnameserv /usr/java/jdk1.8.0_202/bin/tnameserv \
--slave /usr/bin/unpack200 unpack200 /usr/java/jdk1.8.0_202/bin/unpack200 \
--slave /usr/bin/javac javac /usr/java/jdk1.8.0_202/bin/javac


Ahora, le indicaremos a alternatives que la versión que nos interesa es la que acabamos de instalar, entonces:

[root@laptop ~]# alternatives --config java

There are 2 programs which provide 'java'.

  Selection    Command
-----------------------------------------------
*+ 1           /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java
   2           /usr/java/jre1.7.0_21/bin/java

Enter to keep the current selection[+], or type selection number: 2

1 comentario: