我在 ~/.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
其他文件调用,否则它们不会在登录 shell 期间获取来源。
如果/etc/profile
调用它(这是典型的),那么如果你想在当前的 shell 中测试它,你必须获取它。
/root: #> source .bashrc
(源与命令源)
/root: # . .bashrc
(来源带有句号)
或者您必须login
使用 su 或 sudo 实例化 shell。
/root: # su -
(破折号启动一个登录 shell,它将重新获取登录文件的来源)
/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 文件中提到的命令。为此,您必须关闭终端并再次打开它。