.png)
Tengo problemas para actualizar Java. Estoy ejecutando Ubuntu 11.10.
Puedo ejecutar sudo apt-get install openjdk-7-jdk
y se completa con éxito. javac -version
es 1.7, sin embargo java -version
es 1.6. Esto es similar aeste problemapero mi problema no es, hasta donde yo sé, el camino.
$ echo $PATH
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
Gracias.
Respuesta1
Actualizar:
Encontré un sitio que tiene una explicación bastante buena:ENLACE
Desde el enlace:
Luego tenemos que hacer alguna configuración.
Debian tiene un script para mantener diferentes versiones de programas como java
los llamados update-alternatives
.
alternativas de actualización --instalar /usr/bin/java java /usr/lib/jvm/jdk1.7.0/bin/java 1065 alternativas de actualización --install /usr/bin/javac javac /usr/lib/jvm/jdk1.7.0/bin/javac 1065
Donde 1065 es una prioridad dada.
Para verificar mi instalación utilizo –config
el parámetro
update-alternatives --config java
que esto imprime:
There are 2 choices for the alternative java (providing /usr/bin/java).
Estado de prioridad de ruta de selección -------------------------------------------------- ---------- * 0 /usr/lib/jvm/jdk1.7.0/bin/java 1065 modo automático 1 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 modo manual 2 /usr/lib/jvm/jdk1.7.0/bin/java 1065 modo manual
Y debido a que 1065 es mayor que 1061, el Java 7 recién instalado se usará de forma predeterminada en
java -version
las impresiones de mi máquina:
versión de java "1.7.0" Entorno de ejecución Java(TM) SE (compilación 1.7.0-b147) Máquina virtual de servidor Java HotSpot(TM) de 64 bits (compilación 21.0-b17, modo mixto)
Notas: Esto podría hacerlo más comprensible.
SLES11 # que java /usr/bin/java SLES11 # actualización-alternativas --list java /usr/lib64/jvm/jre-1.6.0-ibm/bin/java SLES11 # actualización-alternativas --display java java: el estado es automático. el enlace actualmente apunta a /usr/lib64/jvm/jre-1.6.0-ibm/bin/java /usr/lib64/jvm/jre-1.6.0-ibm/bin/java - prioridad 1608 rmiregistry esclavo: /usr/lib64/jvm/jre-1.6.0-ibm/bin/rmiregistry esclavo tnameserv: /usr/lib64/jvm/jre-1.6.0-ibm/bin/tnameserv esclavo rmid: /usr/lib64/jvm/jre-1.6.0-ibm/bin/rmid esclavo jre_exports: /usr/lib64/jvm-exports/jre-1.6.0-ibm herramienta de política esclava: /usr/lib64/jvm/jre-1.6.0-ibm/bin/policytool herramienta de claves esclava: /usr/lib64/jvm/jre-1.6.0-ibm/bin/keytool esclavo jre: /usr/lib64/jvm/jre-1.6.0-ibm La "mejor" versión actual es /usr/lib64/jvm/jre-1.6.0-ibm/bin/java.
La página de manual proporciona la ruta que utilizan las alternativas de actualización para su directorio.
SLES11 #contraseña /etc/alternativas SLES11#ll lrwxrwxrwx 1 raíz raíz 37 19 de marzo 06:03 java -> /usr/lib64/jvm/jre-1.6.0-ibm/bin/java lrwxrwxrwx 1 raíz raíz 28 19 de marzo 06:03 jre -> /usr/lib64/jvm/jre-1.6.0-ibm lrwxrwxrwx 1 raíz raíz 28 19 de marzo 06:03 jre_1.6.0 -> /usr/lib64/jvm/jre-1.6.0-ibm lrwxrwxrwx 1 raíz raíz 36 19 de marzo 06:03 jre_1.6.0_exports -> /usr/lib64/jvm-exports/jre-1.6.0-ibm lrwxrwxrwx 1 raíz raíz 36 19 de marzo 06:03 jre_exports -> /usr/lib64/jvm-exports/jre-1.6.0-ibm lrwxrwxrwx 1 raíz raíz 28 19 de marzo 06:03 jre_ibm -> /usr/lib64/jvm/jre-1.6.0-ibm lrwxrwxrwx 1 raíz raíz 36 19 de marzo 06:03 jre_ibm_exports -> /usr/lib64/jvm-exports/jre-1.6.0-ibm
Realizar el cambio si ya los tiene instalados y solo necesita cambiar el valor predeterminado.
SLES11 # alternativas de actualización --config java Sólo hay 1 programa que proporciona Java (/usr/lib64/jvm/jre-1.6.0-ibm/bin/java). Nada que configurar.
Respuesta original:
Si miras /etc/java
o algo así, /etc/java-7-openjdk
deberías ver los archivos de configuración.
java.conf
ojvm.cfg
Por lo general, esto depende (dependiendo) del archivo de configuración y establezca sus opciones. Puede tener varias versiones de Java instaladas al mismo tiempo y cambiar las variables de inicio para determinar cuál es su JVM predeterminada.
de CentOSjava.conf
# Si tiene instalado el paquete JRE base # (por ejemplo, java-1.6.0-openjdk): #JAVA_HOME=$JVM_ROOT/jre # Si tiene instalado el paquete JDK de desarrollo # (por ejemplo, java-1.6.0-openjdk-devel): #JAVA_HOME=$JVM_ROOT/java
desde ubuntujvm.cfg
# Lista de JVM que se pueden utilizar como opción para java, javac, etc. # El orden es importante: el primero en esta lista es la JVM predeterminada. # TENGA EN CUENTA que tanto este archivo como su formato NO SON COMPATIBLES y # DESAPARECERÁ en una versión futura. # # También puede seleccionar una JVM en una ubicación arbitraria con el # opción "-XXaltjvm=", pero tampoco es compatible # y es posible que no esté disponible en una versión futura. # -servidor CONOCIDO -cliente IGNORAR -ERROR de punto de acceso -advertencia clásica -ERROR nativo -ERROR verde -jamvm CONOCIDO -cacao CONOCIDO -cero CONOCIDO -tiburón ALIASED_TO -cero
En Ubuntu hay un programa llamado update-java-alternatives
Estas son las primeras líneas de la página de manual
NOMBRE update-java-alternatives - alternativas de actualización para instalaciones jre/sdk SINOPSIS actualizar-alternativas-java [--jre] [--plugin] [-t|--test|-v|--verbose] -l|--lista [] -s|--conjunto -a|--automático -h|-?|--ayuda DESCRIPCIÓN update-java-alternatives actualiza todas las alternativas que pertenecen a un tiempo de ejecución o kit de desarrollo para el lenguaje Java. Un paquete proporciona estos información de sus alternativas en /usr/lib/jvm/..jinfo.
root@ubuntul:/# actualización-alternativas-java -l java-1.6.0-openjdk 1061 /usr/lib/jvm/java-1.6.0-openjdk
-s|--conjunto Configure todas las alternativas de la instalación jre/sdk registrada en la ruta del programa proporcionada por la instalación.
Lo que normalmente también veré son enlaces /etc/profile.d
para entornos de inicio de Java.
Supongo que sus bibliotecas de Java se instalaron en el mismo lugar y los archivos de configuración todavía tienen la versión original de forma predeterminada. Sólo debería necesitar proporcionar la nueva ruta JVM.