update-java-alternatives vs update-alternatives --config java


97

Su Ubuntu 12.04 LTS ho installato Sun JDK7, Eclipse e l'IDE Arduino. Voglio che Arduino usi OpenJDK 6 e che Eclipse utilizzi JDK 7 di Sun.

Da quanto ho capito, devo scegliere manualmente quale Java utilizzare prima di eseguire ciascuna applicazione. Questo mi ha portato al update-java-alternatives -lcomando. Quando eseguo questo vedo solo quanto segue:

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

ma quando corro update-alternatives --config javavedo quanto segue:

*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

Non capisco perché update-java-alternativesnon visualizzi le stesse 3 opzioni. Inoltre non capisco come passare da OpenJDK6 a JDK7. Come posso utilizzare OpenJDK6 per lo sviluppo di Arduino e Sun JDK7 per lo sviluppo di Eclipse / Android?

Risposte:


127

sudo update-alternatives --config java

Configura il valore predefinito per il programma "java". Questa è la VM Java.

sudo update-alternatives --config javac

Configura il compilatore Java predefinito.

Puoi anche vederlo, perché il primo comando elenca molte cartelle "JRE" (Java Runtime Environment) e il Programma si chiama semplicemente "java".

Se controllo quale versione viene utilizzata emettendo il comando java -version o javac -version, posso vedere, che ciascun comando modifica il programma in uso.

Tuttavia, l'utilizzo update-java-alternativescon una versione JDK modifica entrambi i programmi per me. Utilizzando i primi comandi, è possibile utilizzare una VM Java e un compilatore Java di JDK diversi.

update-java-alternatives richiede la presenza di un file con estensione .jinfo nella directory / usr / lib / jvm. Il pacchetto opendjk viene spedito con un file .jinfo, il jdk di Oracle (precedentemente Sun) non lo è. In alternativa, puoi configurare alternative senza update-java-alternatives :

Ad esempio, per aggiungere java dalla directory jvm /usr/lib/jvm/jdk-12.0.1 ( directory predefinita del pacchetto Debian di Oracle ) con priorità 2082, usare il comando seguente:

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

Per quanto riguarda il passaggio per diversi ambienti di sviluppo:

Stai parlando di avviare l'IDE stesso con le versioni di Java differenti o utilizzando versioni diverse in IDE per la compilazione e l'esecuzione la vostra applicazione?

Per 1 .: È possibile specificare quale JVM utilizzare in eclipse.ini, come descritto qui . Non so come farlo per l'IDE di Arduino.

Per 2 .: In Eclipse è possibile selezionare JRE / JDK da utilizzare in Finestra -> Preferenze -> Java -> JRE installati. E sotto Java -> Compilatore puoi scegliere una vecchia conformità Java se lo desideri.

EDIT: questa pagina DigitalOcean ha anche una bella spiegazione di tutto ciò che riguarda Java su Ubuntu.


15

update-java-alternativesè un programma per aggiornare le alternative per le jre/jdkinstallazioni.

update-alternatives è un sistema simbolico di gestione dei collegamenti per Linux (sono sicuro che ci sono poche novità qui).

Puoi, e davvero dovresti, usare entrambi update-java-alternativese update-alternativesinsieme.

Innanzitutto, assicurati di avere tutte le alternative configurate correttamente. java e javac sono solo alcuni. C'è javadoc, rmic, serialvere altri, sostituendo le variabili di cui sopra per: native2asciie /opt/jdk1.8.0_40/bin/native2asciidovrebbe riferire se l'alternativa è installato e / o selezionata.

Quando tutte le alternative sono configurate, è possibile creare collegamenti /usr/lib/jvmalla propria installazione manuale.

Per configurare update-java-alternativesè necessario utilizzare un file nascosto con lo stesso nome della directory ma preceduto da a. (punto).

Spero che sia di aiuto.

Bibliografia

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.