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

66

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

Da quanto ho capito, ho bisogno di scegliere manualmente quale Java usare prima di eseguire ogni applicazione. Questo mi ha portato al comando update-java-alternatives -l . Quando lo eseguo, vedo solo quanto segue:

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

ma quando eseguo update-alternatives --config java vedo 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-alternatives non mostri 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?

    
posta Stan Smith 03.07.2013 - 00:32

2 risposte

93

sudo update-alternatives --config java

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

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 è chiamato semplicemente "java".

Se controllo quale versione viene utilizzata emettendo il comando %codice% o %codice%, Vedo che ogni comando modifica il programma in uso.

Tuttavia, utilizzando java -version con una versione di JDK cambia per me entrambi i programmi . Utilizzando i primi comandi, è possibile utilizzare una Java VM e un Java Compiler da diversi JDK.

Quindi sembra che sia necessario installare anche il pacchetto javac -version . Sembra che tu abbia installato solo update-java-alternatives .

Per quanto riguarda il passaggio per diversi ambienti di sviluppo:

Stai parlando di avviare l'IDE stesso con diverse versioni di Java o utilizzando diverse versioni in l'IDE per la compilazione e l'esecuzione della tua app?

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

Per 2 .: In Eclipse puoi selezionare il JRE / JDK da usare in Window - & gt; Preferenze - & gt; Java - & gt; JRE installati. E sotto Java - & gt; Compilatore, se lo desideri, puoi scegliere una conformità Java precedente.

    
risposta data Benjamin Maurer 10.12.2013 - 12:17
12

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

update-alternatives è un sistema di gestione dei collegamenti simbolici per linux (sono sicuro che ci sono poche notizie qui).

Puoi, e dovresti davvero, usare sia update-java-alternatives che update-alternatives insieme.

In primo luogo, assicurati di avere tutte le alternative configurate correttamente. java e javac sono solo alcuni. C'è javadoc , rmic , serialver e altri, sostituendo le variabili precedenti per: native2ascii e /opt/jdk1.8.0_40/bin/native2ascii dovrebbe riportare se l'alternativa è installata e / o selezionata.

Quando tutte le alternative sono configurate, puoi creare collegamenti in /usr/lib/jvm all'installazione manuale.

Per configurare update-java-alternatives devi usare un file nascosto con lo stesso nome della tua directory ma con prefisso da a. (Dot).

Spero che questo aiuti.

Bibliografia

man -S 8 update-java-alternatives

link

link

    
risposta data fmmarques 23.08.2015 - 20:11

Leggi altre domande sui tag