2012-03-29 148 views
1

我有Linux CentOS版本5.5,我试图安装sun-java6-jdk。

我发现,如果我执行下面的命令,我有:

java -version 
java version "1.6.0_21" 
Java(TM) SE Runtime Environment (build 1.6.0_21-b06) 
Java HotSpot(TM) 64-Bit Server VM (build 17.0-b16, mixed mode) 

如果我这样做:

echo $JAVA_HOME 
/usr/java/default 

当我尝试运行脚本,我有错误: 错误:未设置JAVA_HOME。

如何在$ .bashrc文件的$ JAVA_HOME中找到并设置正确的值?

感谢,提前

+0

如何和你在哪里运行此脚本? – Kevin 2012-03-29 13:29:21

+0

你确定这个变量已经被shell导出了吗?如果不是,那么当你尝试“回声”时它会显示出来,但程序仍然不会看到它。验证运行'env | grep JAVA_HOME' – Patrick 2012-03-29 13:37:26

+0

我以超级用户(sudo)的身份运行脚本,执行了以下命令,env | grep JAVA_HOME JAVA_HOME =/usr/java/jdk1.6.0_21 – programmer 2012-03-29 20:14:48

回答

3

确保您的JAVA_HOME变量被导出到随后执行的命令的环境中。

在你的.bashrc文件提出:

export JAVA_HOME=/usr/java/default 
+0

最后,我在conf/hadoop-env.sh文件中添加了--export JAVA_HOME =/usr/java/default--并且它工作正常。现在正在工作 – programmer 2012-03-30 20:51:05

1

要查找$ JAVA_HOME值,做

ls -l `which java` 

,并使用/ bin/java的 哪个脚本显示 “JAVA_HOME未设置” 的父目录?如果它是tomcat的启动脚本,那么最好在该脚本中设置$ JAVA_HOME。

+2

您可以使用'type - 这是一个脚本.sh为Hadoop,我需要启动名称节点,但是它是一个bash内建的:'JAVA_HOME = $(dirname“$(dirname”$(type -p java)“)”))' – 2012-03-29 14:08:39

+0

我不能 – programmer 2012-03-29 20:11:51

+0

另外,我执行命令ls -l'java'和输出是:/ usr/bin/java - > /usr/java/jre1.6.0_21/bin/java – programmer 2012-03-29 20:13:26