Win10 x64环境下Java 8u171/172运行ElasticSearch启动失败求助
解决Windows 10 x64下Elasticsearch启动报错"Common was unexpected at this time"
我之前也碰到过Windows批处理环境下Elasticsearch启动的类似报错,大概率是脚本解析路径、变量或者参数时出了问题。结合你的场景(Java 8u171/172,启动命令带自定义集群和节点名),给你几个针对性的排查和解决方法:
1. 先检查Elasticsearch安装路径的坑
Windows批处理对带空格或特殊字符的路径特别敏感,如果你的Elasticsearch装在C:\Program Files\elasticsearch这种带空格的目录里,脚本很容易解析出错。
- 解决办法:把Elasticsearch整个移到没有空格、没有特殊字符的路径下,比如
C:\elasticsearch-7.x.x\(换成你对应的版本号)。
2. 给启动参数加上双引号试试
你当前的启动命令里,自定义的集群名和节点名虽然看起来没问题,但批处理可能会把参数值拆分开解析。试试给参数值加上双引号:
cd bin && elasticsearch.bat -Ecluster.name="ABTest_Cluster_00" -Enode.name="ABTest_Node_00"
如果你的bin目录本身路径带空格,那cd命令也要用引号包裹路径:
cd "C:\your-es-path\bin" && elasticsearch.bat -Ecluster.name="ABTest_Cluster_00" -Enode.name="ABTest_Node_00"
3. 检查jvm.options配置是否有错误
你提到看了jvm.options文件,哪怕只看到部分内容,也要重点排查这些点:
- 有没有多余的空格、乱码或者错误的换行
- 堆内存配置(比如
-Xms和-Xmx)格式是否正确,比如-Xms2g -Xmx2g,不要加多余的符号或者空格 - 注释符号
#是否正确使用,有没有不小心把需要的配置注释掉,或者把注释当成了配置
4. 确认Java环境变量没毛病
虽然你升级了Java版本,但还是要再核对一遍:
- 系统环境变量
JAVA_HOME必须指向正确的Java安装目录,而且路径不能有空格(比如C:\Program Files\Java\jdk1.8.0_172就有空格,建议移到C:\Java\jdk1.8.0_172) - 打开命令行执行
java -version和javac -version,确认输出的版本是你安装的171/172,且没有多个Java版本冲突的情况
5. 直接测试基础启动方式
先抛开自定义参数,直接双击elasticsearch.bat文件,看能不能正常启动。如果可以,再逐步添加-Ecluster.name和-Enode.name参数,排查是不是参数本身的问题。
如果双击也报错,可以打开elasticsearch.bat脚本,搜索包含Common的行,看看是不是某个变量(比如%COMMON%)没有正确赋值,或者路径引用出错。
要是以上方法都试过还是不行,建议重新下载对应版本的Elasticsearch解压安装,有可能是之前的安装包损坏或者文件丢失导致的问题。
内容的提问来源于stack exchange,提问作者Adam Benson
相关产品推荐
相关产品推荐

