Nutch Error: JAVA_HOME is not set

Nutch Error: JAVA_HOME is not set

我遵循了本教程 http://saskia-vola.com/nutch-2-2-elasticsearch-1-x-hbase/ 当我最终尝试 运行 Nutch sudo bin/nutch inject urls 我得到了这个错误

Error: JAVA_HOME is not set.

但是当我回应 JAVA_HOME 它时 returns

/usr/lib/jvm/java-7-openjdk-amd64

它也在/etc/environment

JAVA_HOME="/usr/lib/jvm/java-7-openjdk-amd64"

我还在文件末尾添加了一行 ~/.bashrc

export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64

但它仍然returns这个错误。我该如何解决?

确保完整的 JDK 不仅是 JVM。您也可以通过在主目录的 .bashrc 文件中导出 JAVA_HOME=YOUR_PREFERED_JDK_PATH 来覆盖它。

您运行以 root 用户身份执行命令,因此应用程序看到的环境变量是 root 用户可见的,而不是您的用户可见的。如果可能,只需检查根目录是否设置了 JAVA_HOME 环境变量或 运行 作为您的用户的程序。

你可以试试sudo -E bin/nutch inject urls

正如 sudo 手册所说, -E, --preserve-env 向安全策略表明用户希望保留其现有环境变量。如果用户没有保护环境的权限,安全策略可能 return 出错。

可能您没有在 /etc/environment 中设置 java 路径。尝试给定的命令。

sudo vi /etc/environment

然后设置Java路径

JAVA_PATH=/give your java path here/

您可以使用 $JAVA_HOME 检查 java 路径,然后使用

sudo -E bin/nutch inject urls