Si necesitamos varias versiones del JRE (Java Runtime Environment) de java en un servidor Red Hat y derivados (CentOS, Fedora, Scientific Linux,etc) es necesario conocer el modo de configurar una de ellas para ser la utilizada por defecto.
En el siguiente ejemplo tenemos un servidor con tres versiones de java JRE:
- jre-1.5.0
- jre-1.6.0
- jre-1.7.0
Para verificar este punto, y saber cual es la versión que está seleccionada por defecto en el sistema utilizamos el comando «alternatives«, que nos muestra tanto el listado de versiones de un programa/servicio concreto como el que está seleccionado por defecto. También tenemos la opción de modificar la versión y establecer la que queramos:
# /usr/sbin/alternatives --config java There are 3 programs which provide 'java'. Selection Command ----------------------------------------------- 1 /usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/java 2 /usr/lib/jvm/jre-1.5.0-gcj/bin/java *+ 3 /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java Enter to keep the current selection[+], or type selection number: 1
Si a continuación consultamos la versión de java sin forzar el path vemos que efectivamente la ha modificado:
# java -version java version "1.6.0_30" OpenJDK Runtime Environment (IcedTea6 1.13.3) (rhel-5.1.13.3.el6_5-x86_64) OpenJDK 64-Bit Server VM (build 23.25-b01, mixed mode)
También podéis listar la información de versiones si necesidad de entrar en el config, pero el volcado de datos es un poco más tosco:
# alternatives --display java java - status is auto. link currently points to /usr/lib/jvm/jre-1.7.0-openjdk/bin/java /usr/lib/jvm/jre-1.5.0-gcj/bin/java - priority 1500 slave keytool: /usr/lib/jvm/jre-1.5.0-gcj/bin/keytool slave orbd: (null) slave pack200: (null) slave rmid: (null) slave rmiregistry: /usr/lib/jvm/jre-1.5.0-gcj/bin/rmiregistry slave servertool: (null) slave tnameserv: (null) slave unpack200: (null) slave jre_exports: /usr/lib/jvm-exports/jre-1.5.0-gcj slave jre: /usr/lib/jvm/jre-1.5.0-gcj slave java.1.gz: (null) slave keytool.1.gz: (null) slave orbd.1.gz: (null) slave pack200.1.gz: (null) slave rmid.1.gz: (null) slave rmiregistry.1.gz: (null) slave servertool.1.gz: (null) slave tnameserv.1.gz: (null) slave unpack200.1.gz: (null) /usr/lib/jvm/jre-1.7.0-openjdk/bin/java - priority 170009 slave keytool: /usr/lib/jvm/jre-1.7.0-openjdk/bin/keytool slave orbd: /usr/lib/jvm/jre-1.7.0-openjdk/bin/orbd slave pack200: /usr/lib/jvm/jre-1.7.0-openjdk/bin/pack200 slave rmid: /usr/lib/jvm/jre-1.7.0-openjdk/bin/rmid slave rmiregistry: /usr/lib/jvm/jre-1.7.0-openjdk/bin/rmiregistry slave servertool: /usr/lib/jvm/jre-1.7.0-openjdk/bin/servertool slave tnameserv: /usr/lib/jvm/jre-1.7.0-openjdk/bin/tnameserv slave unpack200: /usr/lib/jvm/jre-1.7.0-openjdk/bin/unpack200 slave jre_exports: /usr/lib/jvm-exports/jre-1.7.0-openjdk slave jre: /usr/lib/jvm/jre-1.7.0-openjdk slave java.1.gz: /usr/share/man/man1/java-java-1.7.0-openjdk.1.gz slave keytool.1.gz: /usr/share/man/man1/keytool-java-1.7.0-openjdk.1.gz [...]