Dans ~/.bash_profile
je règle ce qui suit:
export Java_HOME=/usr/lib/jvm/Java-7-openjdk-i386/bin/Java
export PATH=$PATH:/usr/lib/jvm/Java-7-openjdk-i386/bin
Après avoir sauvegardé et fermé j'ai couru:
Sudo su
source .bash_profile
echo $PATH
apporte
root@ubuntu:~# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/lib/jvm/Java-7-openjdk-i386/bin
which Java
is
/usr/bin/Java
Mais si je commence smartgit, il y a l'avertissement suivant
ip@ubuntu:/usr/share/smartgithg/bin$ ./smartgithg.sh
Warning: /usr/lib/jvm/Java-7-openjdk-i386/jre/bin/Java/bin/Java does not exist
Pourquoi 'quel Java' ne pointe pas vers le nouveau Java que j'ai installé? Et pourquoi contient $ PATH bin/Java/
deux fois?
Vous pouvez sélectionner Java version à l'aide de la commande update-alternatives
.
Exécuter ci-dessous la commande dans le terminal.
Sudo update-alternatives --config Java
Et tapez le numéro de sélection que vous souhaitez utiliser.
Comme ça:
Attention: La description ci-dessus concerne les procédures permettant de modifier une version par défaut. Ce n'est pas une réponse à cette question, mais devrait vous aider à définir le Java home
Ubuntu utilise le système update-alternatives
pour gérer quelle installation du JDK ou du JRE Java devrait être utilisée. Cela vous permet d'installer plusieurs versions de Java, tout en contrôlant celle qui est utilisée par défaut.
C'est pourquoi which Java
n'affiche pas la version que vous avez installée. /usr/bin/Java
est juste un lien symbolique. Si vous exécutez ls -l /usr/bin/Java
, vous verrez quelque chose comme:
lrwxrwxrwx 1 root root 22 Jul 4 2013 /usr/bin/Java -> /etc/alternatives/Java
et si vous suivez la piste en exécutant ls -l /etc/alternatives/Java
, vous verrez quelque chose comme:
lrwxrwxrwx 1 root root 39 Jul 15 2013 /etc/alternatives/Java -> /usr/lib/jvm/Java-7-Oracle/jre/bin/Java
mais le chemin exact dépendra de la version que vous avez sélectionnée.
Vous pouvez sélectionner la version de Java que vous souhaitez exécuter à l'aide de cette commande:
Sudo update-alternatives --config Java
Votre chemin contient bin/Java
deux fois parce que vous avez configuré $Java_HOME
de manière incorrecte. $Java_HOME
doit pointer vers le répertoire racine de votre installation Java; dans votre cas, /usr/lib/jvm/Java-7-openjdk-i386/
. Vous le pointiez sur le binaire Java
lui-même.
Vous ne devriez pas avoir besoin d'ajouter $Java_HOME
à votre $PATH
sauf si vous installez Java manuellement et que vous n'utilisez pas update-alternatives
, car /usr/bin
est déjà dans votre $PATH
.
Vous avez mal défini votre variable Java_HOME
dans votre fichier ~/.bash_profile
. Changez votre variable Java_HOME
en:
export Java_HOME=/usr/lib/jvm/Java-7-openjdk-i386/
et ensuite source ~/.bash_profile
Cela devrait résoudre votre problème.