直接双击elasticsearch.bat可以成功启动,注册成服务后就启动失败

 

从网上查找问题,发现是jdk版本的问题,用ES自带的jdk就可以启动成功。

 

默认ES会先找JAVA_HOME环境变量,如果没配置就使用ES自带的jdk

 

以下是解决办法:

  找到elasticsearch-env.bat 中的  

1 if "%JAVA_HOME%" == "" (
2 set JAVA="%ES_HOME%\jdk\bin\java.exe"
3 set JAVA_HOME="%ES_HOME%\jdk"
4 set JAVA_TYPE=bundled jdk
5  ) else (
6  set JAVA="%JAVA_HOME%\bin\java.exe"
7  set JAVA_TYPE=JAVA_HOME
8 rem )

修改为:

set JAVA="%ES_HOME%\jdk\bin\java.exe"
set JAVA_HOME="%ES_HOME%\jdk"
set JAVA_TYPE=bundled jdk

最后重新注册windows服务,启动成功