You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java 17/21环境下SonarQube 9.8.0启动失败问题咨询

SonarQube 9.8.0 启动失败排查(Elasticsearch 退出码1)

问题描述

系统已安装Java 21和Java 17版本,运行SonarQube 9.8.0时无法启动,日志显示Elasticsearch进程以退出码1终止。

错误日志(中文翻译)

2024.01.14 10:31:36 INFO  app[][o.s.a.AppFileSystem] 清理或创建临时目录 C:\sonarqube-9.8.0.63668\sonarqube-9.8.0.63668\temp
2024.01.14 10:31:36 INFO  app[][o.s.a.es.EsSettings] Elasticsearch 监听地址 [HTTP: 127.0.0.1:9001, TCP: 127.0.0.1:50127]
2024.01.14 10:31:37 INFO  app[][o.s.a.ProcessLauncherImpl] 从 [C:\sonarqube-9.8.0.63668\sonarqube-9.8.0.63668\elasticsearch] 启动进程[ELASTICSEARCH]:C:\Program Files\Java\jdk-21\bin\java -XX:+UseG1GC -Djava.io.tmpdir=C:\sonarqube-9.8.0.63668\sonarqube-9.8.0.63668\temp -XX:ErrorFile=../logs/es_hs_err_pid%p.log -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.negative.ttl=10 -XX:+AlwaysPreTouch -Xss1m -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djna.nosys=true -Djna.tmpdir=C:\sonarqube-9.8.0.63668\sonarqube-9.8.0.63668\temp -XX:-OmitStackTraceInFastThrow -Dio.netty.noUnsafe=true -Dio.netty.noKeySetOptimization=true -Dio.netty.recycler.maxCapacityPerThread=0 -Dio.netty.allocator.numDirectArenas=0 -Dlog4j.shutdownHookEnabled=false -Dlog4j2.disable.jmx=true -Dlog4j2.formatMsgNoLookups=true -Djava.locale.providers=COMPAT -Dcom.redhat.fips=false -Xmx512m -Xms512m -XX:MaxDirectMemorySize=256m -XX:+HeapDumpOnOutOfMemoryError -Delasticsearch -Des.path.home=C:\sonarqube-9.8.0.63668\sonarqube-9.8.0.63668\elasticsearch -Des.path.conf=C:\sonarqube-9.8.0.63668\sonarqube-9.8.0.63668\temp\conf\es -cp lib/* org.elasticsearch.bootstrap.Elasticsearch
2024.01.14 10:31:37 INFO  app[][o.s.a.SchedulerImpl] 等待Elasticsearch启动并运行
2024.01.14 10:31:40 WARN  app[][o.s.a.p.AbstractManagedProcess] 进程[ElasticSearch]退出,退出码:1
2024.01.14 10:31:40 INFO  app[][o.s.a.SchedulerImpl] 进程[ElasticSearch]已停止
2024.01.14 10:31:40 INFO  app[][o.s.a.SchedulerImpl] SonarQube已停止

解决方案

核心原因

SonarQube 9.8.0官方仅支持Java 11或17版本,不兼容Java 21。日志中可见当前使用Java 21启动Elasticsearch,这是导致启动失败的直接原因。

修复步骤

  • 临时切换Java版本(Windows系统)
    在启动SonarQube前,执行以下命令指定Java 17:

    set JAVA_HOME=C:\Program Files\Java\jdk-17
    set PATH=%JAVA_HOME%\bin;%PATH%
    

    之后再启动SonarQube。

  • 永久指定Java版本
    编辑SonarQube安装目录下的conf\sonar.properties文件,添加以下配置:

    sonar.java.home=C:\Program Files\Java\jdk-17
    

    保存后重启SonarQube即可。

内容的提问来源于stack exchange,提问作者Elsa N

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 13:43:15