今天在电脑(Windows)上面部署elasticsearch-7.5.1版本,运行elasticsearch.bat闪退。
通过搜索得知是因为本地已经存在JDK版本(我用的是JDK1.8)导致和elasticsearch-7.5.1要求的JDK版本冲突,elasticsearch-7.5.1要求的对应JDK版本是JDK11。所以在网上查找了各种教程,尝试过修改elasticsearch或者elasticsearch.bat文件,依然没能解决问题。
最终的解决方案是:
先去下载JDK11,然后配置环境变量:
新增变量名称:ES_HOME
变量值:D:\soft\Java\jdk11 //你的JDK11安装目录
修改elasticsearch-env.bat文件:
//在第38行左右,下面的路径换成你的JDK11安装目录:
if defined JAVA_HOME (
rem set JAVA="%ES_JDK%\bin\java.exe"
set JAVA="D:\soft\Java\jdk11\bin\java.exe"
) else (
rem set JAVA="%ES_HOME%\jdk\bin\java.exe"
rem set JAVA_HOME="%ES_HOME%\jdk"
set JAVA="D:\soft\Java\jdk11\bin\java.exe"
set JAVA_HOME="D:\soft\Java\jdk11\bin"
)
只需要修改上面一处文件即可,无需干涉你之前正在使用的JDK环境。其他的位置如果已经修改了,都可还原到默认状态。
然后再次运行elasticsearch.bat会报内存错误,找到安装目录下的config文件夹打开jvm.options文件:
//在第19行左右
# Xms represents the initial size of total heap space
# Xmx represents the maximum size of total heap space
-Xms2g
-Xmx2g
把内存限制修改到2g,再次运行elasticsearch.bat发现问题完美解决。
附SpringBoot和Elasticsearch版本对照表:(点我直达),版本关系要适配,否则SpringBoot找不到Elasticsearch的节点。