Comment définir la version Java par défaut?

125

J'ai suivi toutes les instructions énoncées à cette question , mais je rencontre quelques problèmes avec la dernière partie de celle-ci.

J'ai en fait la version 6.22 de java et j'aimerais passer à la version 6.30.

Donc, après avoir déplacé le répertoire extrait java-6-oracledans /usr/lib/jvmje ne sais pas quoi faire, car le script indiqué dans la réponse ci-dessus met à jour java 5 en java 6.

Par souci de clarté, voici la sortie si je fais un lsin dir /usr/lib/jvm:

$ ls -l /usr/lib/jvm
total 8 
lrwxrwxrwx  1 root root   14 2011-07-12 15:18 default-java -> java-6-openjdk
lrwxrwxrwx  1 root root   14 2011-07-12 12:19 java-1.6.0-openjdk -> java-6-openjdk 
drwxr-xr-x 10 root root 4096 2012-04-12 12:06 java-6.31-oracle 
drwxr-xr-x  7 root root 4096 2012-02-24 14:43 java-6-openjdk

Qu'est-ce que je devrais faire maintenant?


PARTIE AJOUTÉE

Sous la suggestion de @fossfreedom, j’ai quand même lancé le script et en fait, il a mis à jour la version java.

En fait, si je lance la java -versionsortie de la commande, ce sera:

$ java -version
java version "1.6.0_31"
Java(TM) SE Runtime Environment (build 1.6.0_31-b04)
Java HotSpot(TM) Server VM (build 20.6-b01, mixed mode)

Il y a toujours un problème , si Irun javac -versionme donne l'ancienne version installée:

$ javac -version
javac 1.6.0_22

Et si j’utilise le testeur sur ce lien, il me dira que la version est

Java Version 1.6.0_22 from Sun Microsystems Inc.

Qu'est-ce qui ne va pas?

Il semble que Java Runtime Environment ait été mis à jour, mais pas le compilateur Java ni le plug-in Java pour navigateur.

Comment puis-je les mettre à jour?


AUTRE PARTIE AJOUTÉE

sudo update-alternatives --config java retournera la sortie suivante

$ sudo update-alternatives --config java
There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                      Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-6.31-oracle/bin/java     1062      auto mode
  1            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      manual mode
  2            /usr/lib/jvm/java-6.31-oracle/bin/java     1062      manual mode

Press enter to keep the current choice[*], or type selection number:

Cela est logique étant donné que JRE est correctement mis à jour vers la version 6.31. Les problèmes concernent Java Compiler et le navigateur Java.

Des idées?

Matteo
la source
@fossfreedom Je ne l'ai pas essayé car je pensais que ce n'était pas une bonne idée de l'avoir écrit explicitement pour le téléchargement de Java 5 à 6, dois-je quand même?
Matteo
1
hmmm - vous êtes peut-être déroutant de savoir que le script webupd8 vaut 0.5b? C’est la version du script - elle ne fait pas référence à la version java. Essaie. Permet de voir une capture d'écran de la fenêtre lorsque vous exécutez le script.
fossfreedom
@fossfreedom ouais ça m'a complètement dérouté; DI a exécuté le script! Vérifiez les modifications en question! Merci beaucoup pour votre aide ..
Matteo
comme c'est très étrange ... jamais rencontré ça. Quoi qu'il en soit - regardez la réponse ci-dessous - vous devriez pouvoir le faire sudo update-alternativesselon l'exemple.
fossfreedom
@fossfreedom mis à jour à nouveau question!
Matteo

Réponses:

104

Re votre première question:

peut-être vous confondez que le script webupd8 est 0.5b. C’est la version du script - elle ne fait pas référence à la version java.

Suite au réglage de la version javac.

Je pense que vous devez indiquer explicitement le chemin du compilateur javac

c'est à dire

sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/java-6.31-oracle/bin/javac" 1

suivi par:

sudo update-alternatives --config javac

En ce qui concerne la configuration du plugin Java Chrome.

La question maîtresse:

Comment installer Oracle JDK 6?

inclut cette information - puisque la structure de votre dossier est légèrement différente, votre commande de lien devrait être:

ln -s /usr/lib/jvm/java-6.31-oracle/jre/lib/i386/libnpjp2.so ~/.mozilla/plugins/
fossfreedom
la source
Cela ne change que le compilateur - voir la réponse ci-dessous pour update-java-alternatives, qui gère le basculement de toutes les alternatives liées à Java, soit 82 sur mon système.
Greg
55

Voir ceci ; courir

sudo  update-java-alternatives --list

pour répertorier toutes les installations Java sur une machine par nom et répertoire, puis exécuter

sudo  update-java-alternatives --set [JDK/JRE name e.g. java-8-oracle]

choisir le JRE / JDK à utiliser.

Si vous souhaitez utiliser différents JDK / JRE pour chaque tâche Java, vous pouvez exécuter update-alternatives pour configurer un exécutable java à la fois. tu peux courir

sudo  update-alternatives --config java[Tab]

pour voir les commandes Java pouvant être configurées (java, javac, javah, javaws, etc.). Puis

sudo  update-alternatives --config [javac|java|javadoc|etc.]

associera cette tâche / commande Java à un JDK / JRE particulier.

Vous devrez peut-être également définir JAVA_HOME pour certaines applications: à partir de cette réponse, vous pourrez utiliser

export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")

pour les JRE, ou

export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:jre/bin/java::")

pour les JDK.

WillC
la source
25

Je pense que vous devriez jeter un coup d’oeil à la update-java-alternativescommande du java-commonpaquet et aux *.jinfofichiers qu’il utilise. Avec cela, vous devriez être capable de basculer complètement entre les installations Java (quels que soient le JDK, le JRE, ...).

Johannes Wachter
la source
2
J'ai essayé le update-java-alternativeset puis java -versionétait correct, mais le lien en $JAVA_HOMEétait toujours faux ... J'ai changé celui-ci manuellement, mais je me demande s'il manque quelque chose update-java-alternativesà cet égard.
Alexis Wilke
7

Sur Ubuntu / Linux, vous pouvez changer de version java en utilisant

update-alternatives --config java

Mais avant, vous devez installer la version.

Vous pouvez utiliser ce script (./install-java.sh) pour installer plusieurs JVM

#!/bin/sh
(
lookforJdks=$PWD
echo "Directory: $lookforJdks"
jdks=`test -e ./javac || find $lookforJdks -type d -iname '*jdk1.*' 2> /dev/null`
#set -e
echo 'which jdk do you want to choose? looking for jdks. This might take a while'
echo "$jdks" | awk '{printf("%5d : %s\n", NR,$0)}'
read choose
test -e ./javac || cd `echo "$jdks" | tr '\n' ',' | cut -d',' -f $choose`/bin
for e in appletviewer extcheck idlj jar jarsigner java javac javadoc javah javap jconsole \
 jdb jhat jinfo jmap jps jrunscript jsadebugd jstack jstat jstatd native2ascii rmic \
 schemagen serialver wsgen wsimport xjc jvisualvm jmc; do sudo update-alternatives \
 --install /usr/bin/$e $e $(readlink -f ./$e) 100; done
)

echo "RUN update-alternatives --config java"

Placez ce script dans le dossier où les machines JVM ont été décompressées et exécutez:

/opt/install-java.sh

Utilisation suivante:

update-alternatives --config java
Ricardo Jl Rufino
la source
1

Si vous envisagez de définir manuellement des alternatives pour javac javaws javadoc ou toute autre commande associée à Java, vous pouvez en faire des esclaves de l’altenative Java.

sudo update-alternatives --install "/usr/bin/java" "java" "/opt/jdk1.8.0_74/bin/java" 0 --slave "/usr/bin/javadoc" "javadoc" "/opt/jdk1.8.0_74/bin/javadoc"


update-alternatives: updating alternative /opt/jdk1.8.0_74/bin/java because link group java has changed slave links


:/opt/jdk1.8.0_74$ sudo update-alternatives --display java

la meilleure version de java - auto mode link est /opt/jdk1.8.0_74/bin/java link pointe actuellement sur /opt/jdk1.8.0_74/bin/java link java est / usr / bin / java esclave javadoc est / usr / bin / javadoc /opt/jdk1.8.0_74/bin/java - javadoc esclave de priorité 0: /opt/jdk1.8.0_74/bin/javadoc

Changez /opt/jdk1.8.0_74/ avec le répertoire où votre jdk est installé.

Thiago
la source
0

Ouvrez /etc/environmentn'importe quel éditeur de texte et ajoutez la ligne suivante:

JAVA_HOME="usr/lib/jvm/open-jdk 

- Le chemin Java peut être différent.
Utilisez source pour charger les variables, en exécutant cette commande:

source /etc/environment

Puis vérifiez la variable en lançant cette commande:

echo $JAVA_HOME

Avec ce chemin défini, exécutez cette commande:

sudo  update-java-alternatives --list

Choisissez votre version Java par défaut.

Mwongera808
la source