linux - 使用 java_home 环境变量识别问题来源

标签 linux bash ubuntu hadoop amazon-ec2

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

hadoop launch-cluster MyCluster 1

这是我得到的输出:

/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_HOME export JAVA_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 二进制文件的正确位置,问题应该得到解决。

关于linux - 使用 java_home 环境变量识别问题来源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16246638/

相关文章:

ruby - 如何让 Rake 使用 RVM 的 Ruby?

ruby - ruby 进程的 init.d 脚本生成器?

c - 程序无法在 Ubuntu 12.04 和 Windows XP 上运行

linux - 如何以不同的名称保存日志文件

linux - 树莓派上的 Ubuntu Mate 卡在颜色测试屏幕上 : first boot

bash - 为什么管道传输到同一个文件在某些​​平台上不起作用?

linux - 将 Windows 批处理文件移植到 shell 脚本。如果可能的话并行执行任务

linux - Csh 脚本等待多个 pid

linux - scp复制所有没有目录的文件

php - Laravel 框架版本 5.2.26 安装在 ubuntu os 中获取 key 生成错误