ElasticSearc(es) jdk的版本如何配置? usage of JAVA_HOME is deprecated

es和jdk是一个强依赖的关系,所以当我们在新版本的ElasticSearch压缩包中包含有自带的jdk,但是当我们的Linux中已经安装了jdk之后,就会发现启动es的时候优先去找的是Linux中已经装好的jdk,此时如果jdk的版本不一致,就会造成jdk不能正常运行,报错如下:

warning: usage of JAVA_HOME is deprecated, use ES_JAVA_HOME
Future versions of Elasticsearch will require Java 11; your Java version from [/usr/local/jdk1.8.0_291/jre] does not meet this requirement. Consider switching to a distribution of Elasticsearch with a bundled JDK. If you are already using a distribution with a bundled JDK, ensure the JAVA_HOME environment variable is not set.

如果Linux服务本来没有配置jdk,则会直接使用es目录下默认的jdk,反而不会报错。

解决办法

1. 进入bin目录

cd /usr/local/elasticsearch-7.13.2/bin

2.修改elasticsearch配置

vim ./elasticsearch

# 将jdk修改为es中自带jdk的配置目录
export JAVA_HOME=/usr/local/elasticsearch/jdk
export PATH=$JAVA_HOME/bin:$PATH

if [ -x "$JAVA_HOME/bin/java" ]; then
        JAVA="/usr/local/elasticsearch/jdk/bin/java"
else
        JAVA=`which java`
fi

备注:es7需要JDK11以上才能支持

es6需要JDK8以上才能支持

es6以下不提供内置的JDK所以必须自行安装JDK才能启动

es7则内置了对应版本的JDK,可以通过修改JDK判断来指定启动的JDK,此记录为es7

版权声明:本文为JAVASCHOOL原创文章,未经本站允许不得转载。