Ich habe diese Zeile am Ende von ~/.bashrc hinzugefügt
export JAVA_HOME=/usr/java/jdk1.5.0_07/bin/java
Aber beim Ausführen echo $JAVA_HOME
bekomme ich nichts als Ausgabe, ich habe „/usr/java/jdk1.5.0_07/bin/java“ erwartet.
Irgendeine Idee?
Betriebssystem: Ubuntu 11.10
Antwort1
Sowohl /etc/bashrc
als auch ~/.bashrc
werden als Dateien bezeichnet non-login
. Das bedeutet, dass sie während einer Login-Shell nicht als Quelle verwendet werden, es sei denn, sie werden von /etc/profile
oder einer anderen Datei aufgerufen.
Wenn /etc/profile
es aufgerufen wird (wie üblich), müssen Sie es entweder als Quelle verwenden, wenn Sie es in Ihrer aktuellen Shell testen möchten.
/root: #> source .bashrc
(Quelle mit dem Befehl Quelle)
/root: # . .bashrc
(Quelle mit Punkt)
Oder Sie müssen login
mit su oder sudo eine Shell instanziieren.
/root: # su -
(der Bindestrich startet eine Login-Shell, die die Login-Dateien neu beschafft)
/root: # sudo su -
(mit „sudo“ den Befehl zum Benutzerwechsel ausführen)
und Sie können sich natürlich einfach erneut anmelden.
BEARBEITEN:
Normalerweise werden Java-Pfade jedoch nicht mit .bashrc festgelegt, sondern als separate Skripte im /etc/profile.d
Verzeichnis. Zumindest bei den Enterprise-Distributionen, die ich verwende.
system1:/etc/profile.d # ll
-rw-r--r-- 1 root root 1438 Aug 30 2005 alljava.csh
-rw-r--r-- 1 root root 1682 Jul 13 2005 alljava.sh
system1:/etc/profile.d # cat alljava.sh
if [ -x /usr/$__libdir/jvm/java/bin/java ] || [ -x /usr/$__libdir/jvm/java/bin/jre ] ; then
export JAVA_BINDIR=/usr/$__libdir/jvm/java/bin
export JAVA_ROOT=/usr/$__libdir/jvm/java
export JAVA_HOME=/usr/$__libdir/jvm/java
#....cut for brevity...
Antwort2
Um die Änderung, die Sie an der Datei ~/.bashrc vorgenommen haben, zu aktivieren, müssen Sie den in der Datei ~/.bashrc angegebenen Befehl ausführen. Dazu müssen Sie das Terminal schließen und erneut öffnen.