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

97

Sur Ubuntu 12.04 LTS, j'ai installé JDK7, Eclipse et l'IDE Arduino de Sun. Je souhaite que l'Arduino utilise OpenJDK 6 et qu'Eclipse utilise le JDK 7 de Sun.

De mon point de vue, je dois choisir manuellement le langage Java à utiliser avant d’exécuter chaque application. Cela m'a conduit à la update-java-alternatives -lcommande. Quand je lance ceci, je ne vois que ce qui suit:

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

mais quand je cours update-alternatives --config javaje vois ce qui suit:

*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

Je ne comprends pas pourquoi le update-java-alternativesn'affiche pas les 3 mêmes options. Je ne comprends pas non plus comment basculer entre OpenJDK6 et JDK7. Comment puis-je utiliser OpenJDK6 pour le développement Arduino et Sun JDK7 pour le développement Eclipse / Android?

Stan Smith
la source

Réponses:

127

sudo update-alternatives --config java

Configure la valeur par défaut pour le programme "java". C'est la machine virtuelle Java.

sudo update-alternatives --config javac

Configure le compilateur Java par défaut.

Vous pouvez également voir cela, car la première commande répertorie un grand nombre de dossiers "JRE" (Java Runtime Environment) et que le programme s'appelle simplement "java".

Si je vérifie quelle version est utilisée en émettant la commande java -version ou javac -version, je vois que chaque commande modifie le programme utilisé.

Cependant, utiliser update-java-alternativesune version JDK change les deux programmes pour moi. À l'aide des premières commandes, vous pouvez utiliser une machine virtuelle Java et un compilateur Java de différents JDK.

update-java-alternatives nécessite la présence d'un fichier d'extension .jinfo dans le répertoire / usr / lib / jvm. Le paquet opendjk est livré avec un fichier .jinfo, pas le jdk d’Oracle (anciennement Sun). Comme alternative, vous configurez des alternatives sans update-java-alternatives :

Par exemple, pour ajouter du java à partir du répertoire jvm / répertoire / usr/lib/jvm/jdk-12.0.1 ( répertoire par défaut du paquet Debian d’Oracle ) avec la priorité 2082, utilisez la commande suivante:

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

En ce qui concerne la commutation pour différents environnements de développement:

Parlez-vous de démarrer l'EDI lui-même avec différentes versions de Java ou d'utiliser différentes versions de l'EDI pour la compilation et l'exécution de votre application?

Pour 1 .: Vous pouvez spécifier quelle machine virtuelle à utiliser dans eclipse.ini, comme décrit ici . Je ne sais pas comment faire cela pour l'IDE Arduino.

Pour 2 .: Dans Eclipse, vous pouvez sélectionner le JRE / JDK à utiliser dans Fenêtre -> Préférences -> Java -> JRE installés. Et sous Java -> Compilateur, vous pouvez choisir une ancienne conformité Java si vous le souhaitez.

EDIT: Cette page DigitalOcean contient également une très belle explication de tout ce qui concerne Java sur Ubuntu.

Benjamin Maurer
la source
15

update-java-alternativesest un programme permettant de mettre à jour des alternatives pour les jre/jdkinstallations.

update-alternatives est un système de gestion de liens symboliques pour Linux (je suis sûr qu'il y a peu de nouvelles ici).

Vous pouvez, et devriez vraiment, utiliser les deux update-java-alternativeset update-alternativesensemble.

Tout d'abord, assurez-vous que toutes les alternatives sont configurées correctement. java et javac ne sont que quelques-uns. Il y a javadoc, rmic, serialveret d' autres, en remplaçant les variables ci - dessus pour: native2asciiet /opt/jdk1.8.0_40/bin/native2asciidoit signaler si l'alternative est installé et / ou sélectionné.

Lorsque toutes les alternatives sont configurées, vous pouvez créer des liens /usr/lib/jvmvers votre installation manuelle.

Afin de configurer, update-java-alternativesvous devez utiliser un fichier caché avec le même nom que votre répertoire mais préfixé par un. (point).

J'espère que cela t'aides.

Bibliographie

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
la source