Establecer JDK 7 como predeterminado

83
 four@twenty:~$ file /etc/alternatives/java /etc/alternatives/javac
 /etc/alternatives/java:symbolic link to `/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java'
 /etc/alternatives/javac:symbolic link to `/usr/lib/jvm/java-6-openjdk-amd64/bin/javac'

Perdón por mi novato, pero estoy interpretando estos mensajes como el entorno de tiempo de ejecución que utiliza Java 7, pero el compilador está utilizando Java 6.

¿Es correcto? Y si es así, ¿cómo puedo configurarlo para usar Java versión 7?

Traje de alas
fuente

Respuestas:

155

El cambio entre versiones instaladas de Java se puede lograr usando el update alternativescomando.

  • Para obtener una lista de sus plataformas Java instaladas, ejecute el siguiente comando desde la terminal:

    sudo update-alternatives --config java

    Esto le dará una salida de lista similar a esta:

    There are 2 choices for the alternative java (providing /usr/bin/java).
       Selection    Path                                           Priority   Status
      ------------------------------------------------------------
      0            /usr/lib/jvm/java-6-oracle/jre/bin/java         1070      auto mode
      1            /usr/lib/jvm/java-7-openjdk-i386/jre/bin/java   1051      manual mode
    * 2            /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java   1069      manual mode
    Press enter to keep the current choice[*], or type selection number: 

En este caso, se está ejecutando la versión Open JDK 6. Para cambiar a la versión 7 de Open JDK, debe seleccionar la opción 1en el indicador y presionar la Entertecla.

Ahora estará ejecutando la versión OpenJDK 7. No se necesitarán otros cambios para cambiar sus versiones de Java.

Kevin Bowen
fuente
Bien gracias. ¿Ganaría algo desinstalando jkd6?
Wingsuit
@ user142712 No hay problema. Creo que una desinstalación también eliminaría el complemento de navegador más antiguo, lo que es beneficioso para la seguridad.
Kevin Bowen
1
No elegiría la respuesta "No hay problema" tan rápido. Visite oracle.com/technetwork/java/javase/compatibility-417013.html y upstream-tracker.org/java/versions/jdk.html . No hay una compatibilidad del 100% entre esas dos versiones principales y puede suceder (poco probable pero aún así ...) que tenga una aplicación X que no se puede ejecutar correctamente con la séptima versión. Hasta que se asegure de que no habrá problemas, le recomiendo mantener ambos en caso de que necesite la versión anterior.
rbaleksandar
Para ser claro. El comentario "sin problemas" fue otra forma de decir que eres bienvenido, nunca dije que no habría problemas con tu instalación de Java.
Kevin Bowen
1
La solución de actualización de alternativas proporcionada por esta respuesta cambiará solo a JRE . Vea a continuación la forma correcta de cambiar JDK completo (compilador y otras herramientas) con un comando
J. Will
15

La respuesta más votada que sugiere usar

alternativas de actualización

solo parcialmente responde la pregunta. Al usarlo es muy probable que su entorno Java sea inconsistente.

Esto es especialmente importante si tiene JDK, no JRE, ya que

[sudo] actualización-alternativas --config java

cambiará versión para el el javacomando solamente , es decir, re-apuntar ejecutable principal JRE.

javacy otras herramientas JDK aún apuntarán a la otra versión de Java. Para cambiar por completo, debe continuar con update-alternativestodas las demás herramientas.

La forma correcta y mucho más fácil de cambiar las versiones de Java en la distribución de Linux con el sistema de "alternativas", es decir, en Debian o su Ubuntu derivado, es usar el comando update-java-alternative .

update-java -ternatives -l : enumerará las versiones instaladas de Java

[sudo] update-java-alternative -s - cambiará a la versión solicitada

Fuente

J. Will
fuente
¡ESTA! Muchas gracias. Desearía poder darle más puntos a Internet, pero no creo que tenga eso bien todavía.
Nenotlep
10

Puede ejecutar sudo update-alternatives --config javay seleccionar JDK 7, si está instalado.

Frederik Spang
fuente
Bien, saludos, dice que tengo dos JKD7 instalados en un estado de listado como automático en el otro manual. ¿Hay alguna diferencia?
Wingsuit
Hay información aquí: linux.die.net/man/8/update-alternatives pero seleccionaría auto.
Frederik Spang
"Cada grupo de enlaces se encuentra, en un momento dado, en uno de dos modos: automático o manual. Cuando un grupo está en modo automático, el sistema de alternativas decidirá automáticamente, a medida que los paquetes se instalen y eliminen, si se deben actualizar los enlaces y cómo hacerlo. . En modo manual, el sistema de alternativas no cambiará los enlaces; dejará todas las decisiones al administrador del sistema. "
mpen