
(Disculpas de antemano si mi formato no es correcto, esta es mi primera publicación, no dudes en corregirme).
Normalmente, cuando quiero saber qué versión de Java estoy usando, ejecuto:
java -version
versión de Java "1.7.0_55"
Si quiero cambiar la versión de Java (de Java 7 a Java 6), puedo simplemente apuntar el enlace simbólico (/usr/bin/java) al binario Java JRE correspondiente. (No necesitamos preocuparnos por el compilador javac o java_ws aquí, en este caso, por cierto).
# readlink -f /usr/bin/java
/usr/lib/jvm/java-7-openjdk-i386/jre/bin/java
# ln -s /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java /usr/bin/java
# java -version
versión de Java "1.6.0_31"
Esto está bien y, hasta donde puedo ver, funciona.
En Solaris, hay una buena manera de hacerlo a través de la herramienta mediadora pkg:
myHost# pkg mediator -H java
sistema java 1.7 sistema
Para cambiar Java de 1.7 a 1.6:
pkg set-mediator -V 1.6 java
Luego para confirmar los cambios.
myHost# pkg mediator -H java
sistema java local 1.6
Me pregunto: ¿ apt
tiene un equivalente? ¿O existe una forma más elegante de cambiar entre versiones de Java?
Editar: esto también podría aplicarse a Python, por lo que no estoy buscando respuestas específicas de Java
Respuesta1
La forma correcta de cambiar entre varias versiones de un software instalado es mediante:
sudo update-alternatives --config <package>
Entonces, para Java, necesitas ejecutar:
sudo update-alternatives --config java
el cual debería devolverte las versiones instaladas, que en mi caso es:
There are 2 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/lib/jvm/java-7-oracle/jre/bin/java 1053 auto mode
1 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1051 manual mode
2 /usr/lib/jvm/java-7-oracle/jre/bin/java 1053 manual mode
Para cambiar entre versiones, puede ingresar, selection
es decir, 0, 1, 2 en este caso, dependiendo de la versión a la que desee cambiar.
Sin embargo, en el caso de Python, python2 y python3 no son alternativas, por lo que no encontrará esta opción, deberá crear alias para ello.
Entonces, si desea que Python haga referencia a la versión 2.xx de Python y que python3 haga referencia a la versión 3.xx de Python, puede abrir su ~/.bash_aliases
archivo e ingresar lo siguiente:
alias python=`/usr/bin/python`
alias python3=`/usr/bin/python3`
Este archivo puede estar vacío si no ha creado alias antes, lo cual está bien. Es posible que incluso desee el alias al revés, es decir, python para hacer referencia a python3 y python2 para hacer referencia a python2, puede modificar el alias como desee.
Como puede ver, depende de si las versiones instaladas son alternativas entre sí; si son alternativas, puede usar update-alternatives
, si no, tendrá que modificarlas usando alias o enlaces suaves. Puede que haya soluciones mejores y más limpias, pero no las conozco.