Actualización-Java-Alternativas vs Actualización-Alternativas --config Java

97

En Ubuntu 12.04 LTS, instalé Sun JDK7, Eclipse y Arduino IDE. Quiero que Arduino use OpenJDK 6 y que Eclipse use Sun's JDK 7.

Según tengo entendido, necesito elegir manualmente qué Java usar antes de ejecutar cada aplicación. Esto me llevó a la update-java-alternatives -lorden. Cuando ejecuto esto, solo veo lo siguiente:

java-1.6.0-openjdk-amd64 1061 /usr/lib/jvm/java-1.6.0-openjdk-amd64

pero cuando corro update-alternatives --config javaveo lo siguiente:

*0  /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java   auto mode
1  /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java   manual mode
2  /usr/lib/jvm/jdk1.7.0/bin/java                   manual mode
3  /usr/lib/jvm/jre1.7.0/bin/java                   manual mode

No entiendo por qué update-java-alternativesno muestra las mismas 3 opciones. Tampoco entiendo cómo cambiar entre OpenJDK6 y JDK7. ¿Cómo puedo usar OpenJDK6 para el desarrollo de Arduino y Sun JDK7 para el desarrollo de Eclipse / Android?

Stan Smith
fuente

Respuestas:

127

sudo update-alternatives --config java

Configura el valor predeterminado para el programa "java". Esa es la máquina virtual Java.

sudo update-alternatives --config javac

Configura el compilador de Java predeterminado.

También puede ver eso, porque el primer comando enumera muchas carpetas "JRE" (Java Runtime Environment) y el Programa simplemente se llama "java".

Si verifico qué versión se está utilizando emitiendo el comando java -version o javac -version, puedo ver, que cada comando cambia el programa que se está utilizando.

Sin embargo, el uso update-java-alternativescon una versión JDK cambia ambos programas para mí. Con los primeros comandos, puede usar una máquina virtual Java y un compilador Java de diferentes JDK.

update-java-alternative requiere la presencia de un archivo con extensión .jinfo en el directorio / usr / lib / jvm. El paquete opendjk se envía con un archivo .jinfo, el jdk de Oracle (anteriormente Sun) no. Como alternativa, puede configurar alternativas sin update-java-alternative :

Por ejemplo, para agregar Java desde el directorio jvm /usr/lib/jvm/jdk-12.0.1 ( directorio predeterminado del paquete Debian de Oracle ) con prioridad 2082, use el siguiente comando:

sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk-12.0.1/bin/java 2082

En cuanto a la conmutación para diferentes entornos de desarrollo:

¿Estás hablando de iniciar el IDE en sí con diferentes versiones de Java o usar diferentes versiones en el IDE para compilar y ejecutar tu aplicación?

Para 1 .: puede especificar qué JVM usar en eclipse.ini, como se describe aquí . No sé cómo hacer eso para el IDE de Arduino.

Para 2 .: en Eclipse puede seleccionar el JRE / JDK que se utilizará en Ventana -> Preferencias -> Java -> JRE instalados. Y en Java -> Compilador, puede elegir un cumplimiento de Java más antiguo si lo desea.

EDITAR: Esta página de DigitalOcean también tiene una muy buena explicación de todo lo relacionado con Java en Ubuntu.

Benjamin Maurer
fuente
15

update-java-alternativeses un programa para actualizar alternativas para jre/jdkinstalaciones.

update-alternatives es un sistema de gestión de enlaces simbólicos para Linux (estoy seguro de que hay pocas noticias aquí).

Puedes, y realmente deberías, usar ambos update-java-alternativesy update-alternativesjuntos.

En primer lugar, asegúrese de tener todas las alternativas configuradas correctamente. Java y Java son solo algunos. Hay javadoc, rmic, serialvery otros, sustituyendo las variables anteriores para: native2asciiy /opt/jdk1.8.0_40/bin/native2asciidebe informar si la alternativa está instalado y / o seleccionado.

Cuando se configuran todas las alternativas, puede crear enlaces /usr/lib/jvma su instalación manual.

Para configurar update-java-alternativesdebe usar un archivo oculto con el mismo nombre que su directorio pero con el prefijo a. (punto).

Espero que esto ayude.

Bibliografía

man -S 8 update-java-alternatives

http://tech.lanesnotes.com/2008/03/using-alternatives-in-linux-to-use.html

https://stackoverflow.com/questions/6477415/how-to-set-oracles-java-as-the-default-java-in-ubuntu

fmmarques
fuente