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
相关产品推荐
相关产品推荐

