web-dev-qa-db-fra.com

Comment définir la valeur de la variable Java_HOME

Mon code/etc/profile est:

# /etc/profile: system-wide .profile file for the Bourne Shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).

if [ "$PS1" ]; then
  if [ "$BASH" ] && [ "$BASH" != "/bin/sh" ]; then
    # The file bash.bashrc already sets the default PS1.
    # PS1='\h:\w\$ '
    if [ -f /etc/bash.bashrc ]; then
      . /etc/bash.bashrc
    fi
  else
    if [ "`id -u`" -eq 0 ]; then
      PS1='# '
    else
      PS1='$ '
    fi
  fi
fi

# The default umask is now handled by pam_umask.
# See pam_umask(8) and /etc/login.defs.

if [ -d /etc/profile.d ]; then
  for i in /etc/profile.d/*.sh; do
    if [ -r $i ]; then
      . $i
    fi
  done
  unset i
fi


Java_HOME=/usr/lib/jvm/Java-6-Sun
export Java_HOME

quand j'exécute la commande echo $ Java_HOME, je reçois:

exportib/jvm/Java-6-Sun

Je m'attendais à /usr/lib/jvm/Java-6-Sun.

Veuillez indiquer comment obtenir la valeur attendue.

3
user133421

Vous devriez JAMAIS ajouter vos variables d'environnement et les exporter vers /etc/profile. Ce fichier est SEULEMENT pour la configuration des fichiers de base du système et des packages .

Au lieu de cela, créez un fichier appelé

/etc/profile.d/Java.sh

... et ensuite ajouter

Java_HOME=/usr/lib/jvm/Java-6-Sun
export Java_HOME

à ce fichier. Il sera exécuté chaque fois qu'un shell est ouvert.

Beaucoup de gens suggèrent exactement ce que vous avez fait, mais c'est absolument incorrect et le résultat que vous avez obtenu est directement lié à l'utilisation de ce fichier pour une mauvaise raison.

Voir:

https://help.ubuntu.com/community/EnvironmentVariables

SOUS: System-wide environment variables pour en savoir plus sur ce sujet, sur la méthode appropriée pour configurer les variables d'environnement à l'échelle du système et sur la raison pour laquelle il est correct. faire cela.

1
SudoSURoot