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

65

Sur Ubuntu 12.04 LTS J'ai installé Sun JDK7, Eclipse et l'IDE Arduino. Je veux que l’Arduino utilise OpenJDK 6 et que Eclipse utilise Sun JDK 7.

D'après ce que je comprends, je dois choisir manuellement le Java à utiliser avant d'exécuter chaque application. Cela m'a conduit à la commande update-java-alternatives -l . Lorsque 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 lance update-alternatives --config java , je 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 update-java-alternatives n'affiche pas les 3 mêmes options. Je ne comprends pas non plus comment basculer entre OpenJDK6 et JDK7. Comment puis-je utiliser le développement OpenJDK6 pour Arduino et Sun JDK7 pour le développement Eclipse / Android?

    
posée Stan Smith 03.07.2013 - 00:32
la source

2 réponses

92

sudo update-alternatives --config java

Configure la valeur par défaut du 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 le programme s'appelle simplement "java".

Si je vérifie quelle version est utilisée en lançant la commande java -version ou javac -version , Je peux voir que chaque commande change le programme utilisé.

Cependant, si vous utilisez update-java-alternatives avec une version JDK, cela change les deux programmes pour moi. En utilisant les premières commandes, vous pouvez utiliser une machine virtuelle Java et un compilateur Java à partir de différents JDK.

Il semble donc que vous deviez également installer le package openjdk-7-jdk . Il semble que vous n'ayez installé que openjdk-7-jre .

Comme pour 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 en utilisant différentes versions dans l’EDI pour la compilation et l’exécution de votre application?

Pour 1: Vous pouvez spécifier la JVM à utiliser dans eclipse.ini, comme décrit dans 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 Window - & gt; Préférences - & gt; Java - & gt; JREs installés. Et sous Java - & gt; Compiler, vous pouvez choisir une conformité Java plus ancienne si vous le souhaitez.

    
réponse donnée Benjamin Maurer 10.12.2013 - 12:17
la source
12

update-java-alternatives est un programme pour mettre à jour des alternatives pour les installations jre/jdk .

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-alternatives et update-alternatives ensemble.

Tout d’abord, assurez-vous que toutes les alternatives sont configurées correctement. java et javac n'en sont que quelques-uns. Il y a javadoc , rmic , serialver et autres, en remplaçant les variables ci-dessus par: native2ascii et /opt/jdk1.8.0_40/bin/native2ascii doivent indiquer si l'alternative est installée et / ou sélectionnée.

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

Pour configurer update-java-alternatives , vous devez utiliser un fichier caché portant le même nom que votre répertoire mais préfixé par un. (point).

J'espère que ça aide.

Bibliographie

man -S 8 update-java-alternatives

lien

lien

    
réponse donnée fmmarques 23.08.2015 - 20:11
la source

Lire d'autres questions sur les étiquettes