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?


@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/

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.


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, ...).


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

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é.


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.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.