最近公司在使用es,搭建了两个环境,内部环境(下面叫做“环境一”)没有安装java环境 echo $JAVA_HOME 为空,无返回内如 es启动后,默认去找了es自带的java环境

另外一个环境(下面叫“环境二”),安装有java环境 所以,再启动时候,去找了系统的java环境 但此环境二内的java版本较老,故在启动es时候,会提示类似以下的内容: future versions of Elasticsearch will require Java 11; your Java version from [/usr/local/java/jre] does not meet this requirement*

所以,怎么才能将环境二不使用已经设定的系统java环境呢? 思路: 我们在启动es的时候,是使用这个命令 $bin/elasticsearch -d 启动的,而进程中显示有java路径,那么肯定是bin/elasticsearch这个可执行文件调用了java命令,所以编辑这个/usr/local/elasticsearch-7.8.0/bin/elasticsearch文件,看看能否修改java的路径。。 好吧,没有找到!!

但是,我在 /usr/local/elasticsearch-7.8.0/bin/ 下看到了一堆的可执行文件,其中有一个elasticsearch-env,进去看了下,果然 于是,对这个JAVA_HOME重新定义,如下: 新增:ES_JAVA_HOME="/usr/local/elasticsearch-7.8.0/jdk/" ,并修改JAVA_HOME为 ES_JAVA_HOME 保存,退出,重启ES 完成!!