Windows环境Elasticsearch 7.14启动报UseConcMarkSweepGC错误如何解决
问题根源
该报错是启动Elasticsearch所用的Java版本无法识别UseConcMarkSweepGC垃圾回收器参数导致:
- JDK14及以上版本已经完全移除了CMS回收器,碰到该参数会直接报错
- 你注释的三行是仅对JDK8-13生效的条件参数,若ES实际调用的是更高版本的JDK,这几行本来就不会生效,因此注释后问题依旧
解决步骤(学习用小型项目优先选方案1,最省心)
方案1:使用Elasticsearch自带的捆绑JDK(无需额外配置Java环境)
Elasticsearch 7.14.0自带适配好的官方JDK,不需要调用你系统里安装的Java,操作如下:
- 进入Elasticsearch解压目录的
bin文件夹,找到elasticsearch.bat,右键用记事本打开 - 在文件最顶部新增一行配置:
示例:如果ES解压在set ES_JAVA_HOME=你的ES解压完整路径\jdkD:\ELK\elasticsearch-7.14.0,就写set ES_JAVA_HOME=D:\ELK\elasticsearch-7.14.0\jdk - 保存文件后重新运行
elasticsearch.bat即可正常启动
方案2:保留使用自己安装的Java8
如果你确定要使用系统安装的Java8 Update 301,按以下操作清理参数:
- 打开Windows命令提示符,执行
java -version,确认输出的版本信息为Java8,确保环境变量没有指向更高版本的JDK - 进入ES解压目录的
config文件夹,打开jvm.options文件 - 全局搜索
UseConcMarkSweepGC,把所有带该参数的行全部加#注释,包括没有8-13:前缀的零散参数行 - 保存文件时注意不要修改后缀,确保文件名为
jvm.options而非jvm.options.txt - 重新启动ES即可
内容的提问来源于stack exchange,提问作者user2470281
相关产品推荐
相关产品推荐

