0
# java
if [ -d "$HOME/Downloads/jdk1.8.0_152" ] ; then
    JAVA_HOME="$HOME/Downloads/jdk1.8.0_152"
fi
if [ -d "$HOME/Downloads/jdk1.8.0_152/bin" ] ; then
    PATH="$HOME/Downloads/jdk1.8.0_152/bin:$PATH"
fi

我已经安装了 Java,如果我键入which java它会显示:

/home/aero/Downloads/jdk1.8.0_152/bin/java

如果我输入java -version它会显示:

java version "1.8.0_152"
Java(TM) SE Runtime Environment (build 1.8.0_152-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.152-b16, mixed mode)

但如果我想通过以下方式安装 elasticsearch:

sudo dpkg -i elasticsearch-6.6.1.deb

表明:

(Reading database ... 285478 files and directories currently installed.)
Preparing to unpack elasticsearch-6.6.1.deb ...
could not find java; set JAVA_HOME or ensure java is in PATH
dpkg: error processing archive elasticsearch-6.6.1.deb (--install):
 new elasticsearch package pre-installation script subprocess returned error exit status 1
Errors were encountered while processing:
 elasticsearch-6.6.1.deb
4

1 回答 1

1

检查您在执行时是否有可用的 Java sudo

sudo which java

如果上面没有显示 Java,请尝试以下命令:

sudo -E which java

开关是在-E执行时保留环境变量sudo

如果上述方法有效,请查看是否sudo -E dpkg -i <dpkg_file>有效。

如果上述步骤没有帮助,我建议您将用户主文件夹之外的 Java 安装文件夹移动到某个常见位置,例如/opt,查看二进制文件是否具有权限,重新定义JAVA_HOME变量并重做上述步骤。

于 2019-02-27T03:54:35.360 回答