Попытка установить JAVA_HOME в ~/.bashrc

Попытка установить JAVA_HOME в ~/.bashrc

Я добавил эту строку в конец ~/.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. Для этого вам необходимо закрыть терминал и открыть его снова.

Связанный контент