Я добавил эту строку в конец ~/.bashrc
export JAVA_HOME=/usr/java/jdk1.5.0_07/bin/java
Но когда я запускаю echo $JAVA_HOME
, я ничего не получаю в качестве вывода, я ожидал "/usr/java/jdk1.5.0_07/bin/java".
Есть идеи?
ОС: Ubuntu 11.10
решение1
Оба /etc/bashrc
и ~/.bashrc
являются тем, что называется non-login
файлами. Это означает, что они не получают источник во время оболочки входа, если не вызваны /etc/profile
или другим файлом.
Если /etc/profile
он вызывается (как это обычно бывает), то, если вы хотите протестировать его в текущей оболочке, вам придется либо вызвать его.
/root: #> source .bashrc
(источник с командой source)
/root: # . .bashrc
(источник с точкой)
Или вам придется создать экземпляр login
оболочки с помощью su или sudo.
/root: # su -
(тире запускает оболочку входа, которая повторно использует файлы входа)
/root: # sudo su -
(используя sudo для выполнения команды переключения пользователя)
и, конечно, вы можете просто повторно войти в систему.
РЕДАКТИРОВАТЬ:
Обычно пути Java не устанавливаются с помощью .bashrc, но они устанавливаются как отдельные скрипты в каталоге /etc/profile.d
. По крайней мере, в корпоративных дистрибутивах, которые я использую.
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...
решение2
Чтобы включить изменения, которые вы внесли в файл ~/.bashrc, вам необходимо выполнить команду, указанную в файле ~/.bashrc. Для этого вам необходимо закрыть терминал и открыть его снова.