Linux 使用java_home环境变量识别问题源

Linux 使用java_home环境变量识别问题源,linux,bash,ubuntu,hadoop,amazon-ec2,Linux,Bash,Ubuntu,Hadoop,Amazon Ec2,我正在尝试在最新版本的ubuntu 64位(vm)中运行这样的hadoop群集: 这是我得到的输出: /usr/bin/hadoop: line 320: /usr/lib/jvm/java-6-sun/bin/java: No such file or directory /usr/bin/hadoop: line 390: /usr/lib/jvm/java-6-sun/bin/java: No such file or directory 我在/usr/bin/hadoop中设置这个JA

我正在尝试在最新版本的ubuntu 64位(vm)中运行这样的hadoop群集:

这是我得到的输出:

/usr/bin/hadoop: line 320: /usr/lib/jvm/java-6-sun/bin/java: No such file or directory
/usr/bin/hadoop: line 390: /usr/lib/jvm/java-6-sun/bin/java: No such file or directory
我在/usr/bin/hadoop中设置这个JAVA\u HOME,方法是
导出JAVA\u HOME=$(readlink-f/usr/bin/JAVA | sed“s:bin/JAVA:”

当我检查JAVA_HOME的值时,我得到/usr/lib/jvm/JAVA-7-openjdk-amd64/jre/

文件的第320行是:

JAVA_PLATFORM=`CLASSPATH=${CLASSPATH} ${JAVA} -Xmx32m ${HADOOP_JAVA_PLATFORM_OPTS} org.apache.hadoop.util.PlatformName | sed -e "s/ /_/g"`
第390行:

exec "$JAVA" -Dproc_$COMMAND $JAVA_HEAP_MAX $HADOOP_OPTS -classpath "$CLASSPATH" $CLASS "$@"

为什么我会收到这个信息/usr/lib/jvm/java-6-sun/bin/java:没有这样的文件或目录

脚本中的某个地方可能设置了
$java
的值,以指向较旧的java 6二进制文件。在本例中,它指向
/usr/lib/jvm/java-6-sun/bin/java
,这会导致shell在运行命令时失败。将
$JAVA
变量设置为指向JAVA 7二进制文件的正确位置,问题应该得到解决

exec "$JAVA" -Dproc_$COMMAND $JAVA_HEAP_MAX $HADOOP_OPTS -classpath "$CLASSPATH" $CLASS "$@"