Dans Ubuntu, j'aimerais basculer ma variable d'environnement JAVA_HOME entre Java 5 et 6.
J'ouvre un terminal et saisis ce qui suit pour définir la variable d'environnement JAVA_HOME:
export JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun
Et dans cette même fenêtre de terminal, je tape ce qui suit pour vérifier que la variable d'environnement a été mise à jour:
echo $JAVA_HOME
Et je vois /usr/lib/jvm/java-1.5.0-sun qui est ce que je m'attends à voir. De plus, je modifie ~ / .profile et définit la variable d'environnement JAVA_HOME sur /usr/lib/jvm/java-1.5.0-sun.
Et maintenant, pour le problème - lorsque j'ouvre une nouvelle fenêtre de terminal et que je vérifie ma variable d'environnement JAVA_HOME en tapant echo $ JAVA_HOME, je vois que ma variable d'environnement JAVA_HOME est revenue à Java 6. Lorsque je redémarre ma machine (ou aller et retour, je suppose) la variable d'environnement JAVA_HOME est définie sur Java 5 (probablement à cause de la modification que j'ai faite dans mon ~ / .profile).
Existe-t-il un moyen de contourner ce problème pour que je puisse changer mon environnement JAVA_HOME sans avoir à me déconnecter et à me reconnecter (ET faire en sorte que le changement de variable d'environnement reste dans toutes les nouvelles fenêtres de terminal)?
la source
~/.profile
fichier n'est lu que lorsque vous vous connectez à Ubuntu, donc si vous vous déconnectez / vous connectez, JAVA_HOME est défini pour tous les terminaux et toutes les autres applications que vous exécutez. Si vous définissez JAVA_HOME,~/.bashrc
il ne sera vu que par les applications exécutées à partir du terminal.Réponses:
Mettez les variables d'environnement dans le
/etc/environment
fichier global :Exécutez "source / etc / environment" dans chaque shell où vous souhaitez que les variables soient mises à jour:
Vérifiez que cela fonctionne:
Génial, aucune déconnexion nécessaire.
Si vous souhaitez définir la variable d'environnement JAVA_HOME uniquement dans le terminal, définissez-la dans le fichier ~ / .bashrc .
la source
/etc/environment
c'est spécial et ne permet pas la substitution de variables, par exempleJRE_HOME=${JAVA_HOME}/jre
ne fonctionnera pas.Cela résoudra probablement votre problème: https://help.ubuntu.com/community/EnvironmentVariables
la source
Essayez ces étapes.
- Nous allons éditer "etc \ profile". Les variables d'environnement doivent être saisies au bas du fichier. Puisque Ubuntu ne donne pas accès au dossier racine, nous devrons utiliser quelques commandes dans le terminal
Étape 1: Démarrez le terminal. Tapez la commande:
gksudo gedit /etc/profile
Étape 2: Le fichier texte du profil s'ouvre. Entrez les variables d'environnement en bas de page ........... Ex:
export JAVA_HOME=/home/alex/jdk1.6.0_22/bin/java
étape 3: enregistrez et fermez le fichier. Vérifiez si les variables d'environnement sont définies à l'aide de la commande echo ........ Par exemple
echo $PATH
la source
Vous devez mettre la définition de variable dans le
~/.bashrc
fichier.Depuis la page de manuel bash:
la source
Traditionnellement, si vous souhaitez uniquement modifier la variable dans les fenêtres de votre terminal, définissez-la dans un
.bashrc
fichier, qui est généré à chaque fois qu'un nouveau terminal est ouvert..profile
le fichier ne provient pas à chaque fois que vous ouvrez un nouveau terminal.Voir la différence entre .profile et .bashrc en question: Quelle est la différence entre .bashrc, .bash_profile et .environment?
.bashrc
devrait résoudre votre problème. Cependant, ce n'est pas la bonne solution puisque vous utilisez Ubuntu. Consultez la page d'aide Ubuntu appropriée « Variables d'environnement à l'échelle de la session ». Ainsi, pas étonnant que.profile
cela ne fonctionne pas pour vous. J'utilise Ubuntu 12.04 et xfce. J'ai configuré mon.profile
et il ne prend tout simplement pas effet même si je me déconnecte et me connecte. Expérience similaire ici . Vous devrez peut-être utiliser.pam_environment
file et oublier totalement.profile
, et.bashrc
. Et notez que ce.pam_environment
n'est pas un fichier de script.la source
Jetez un oeil à
bash(1)
, vous avez besoin d'un shell de connexion pour choisir~/.profile
l'-l
option , c'est-à-dire .la source
Je sais que c'est une longue question froide, mais elle revient chaque fois qu'il y a une nouvelle version majeure ou récente de Java. Maintenant, cela s'appliquerait facilement aux échanges 6 et 7.
J'ai fait cela dans le passé avec
update-java-alternatives
: http://manpages.ubuntu.com/manpages/hardy/man8/update-java-alternatives.8.htmlla source
Après avoir apporté des modifications à .profile, vous devez exécuter le fichier pour que les modifications prennent effet.
Une fois que cela est fait, la commande echo fonctionnera.
la source
~/.profile
plutôt que./.profile
.