SonarQube社区版v8启动后意外终止问题求助
SonarQube社区版v8启动失败问题排查
问题描述
安装SonarQube社区版(v8.9.9.56886),已通过Windows安装程序完成JDK 11部署,修改wrapper.java.command配置为wrapper.java.command=C:\Program Files\Java\jdk-11.0.16\bin\java.exe(也尝试过不带.exe的路径)。启动后进程仅运行1-2秒就终止,访问localhost:9000页面显示“加载中”。尝试删除temp文件夹内容、结束Java进程后问题依旧。
启动日志
StartSonar.bat wrapper | --> Wrapper Started as Console wrapper | Launching a JVM... jvm 1 | Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org jvm 1 | Copyright 1999-2006 Tanuki Software, Inc. All Rights Reserved. jvm 1 | jvm 1 | 2022.09.07 10:39:27 INFO app[][o.s.a.AppFileSystem] Cleaning or creating temp directory C:\sonarqube\sonarqube-8.9.9.56886\temp jvm 1 | 2022.09.07 10:39:27 INFO app[][o.s.a.es.EsSettings] Elasticsearch listening on [HTTP: 127.0.0.1:9001, TCP: 127.0.0.1:50285] jvm 1 | 2022.09.07 10:39:27 INFO app[][o.s.a.ProcessLauncherImpl] Launch process[[key='es', ipcIndex=1, logFilenamePrefix=es]] from [C:\sonarqube\sonarqube-8.9.9.56886\elasticsearch]: C:\Program Files\Java\jdk-11.0.16\bin\java -XX:+UseG1GC -Djava.io.tmpdir=C:\sonarqube\sonarqube-8.9.9.56886\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\sonarqube-8.9.9.56886\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 -Xmx512m -Xms512m -XX:MaxDirectMemorySize=256m -XX:+HeapDumpOnOutOfMemoryError -Delasticsearch -Des.path.home=C:\sonarqube\sonarqube-8.9.9.56886\elasticsearch -Des.path.conf=C:\sonarqube\sonarqube-8.9.9.56886\temp\conf\es -cp lib/* org.elasticsearch.bootstrap.Elasticsearch jvm 1 | 2022.09.07 10:39:27 INFO app[][o.s.a.SchedulerImpl] Waiting for Elasticsearch to be up and running jvm 1 | 2022.09.07 10:39:50 INFO app[][o.s.a.SchedulerImpl] Process[es] is up jvm 1 | 2022.09.07 10:39:50 INFO app[][o.s.a.ProcessLauncherImpl] Launch process[[key='web', ipcIndex=2, logFilenamePrefix=web]] from [C:\sonarqube\sonarqube-8.9.9.56886]: C:\Program Files\Java\jdk-11.0.16\bin\java -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djava.io.tmpdir=C:\sonarqube\sonarqube-8.9.9.56886\temp -XX:-OmitStackTraceInFastThrow --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED -Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError -Dhttp.nonProxyHosts=localhost|127.*|[::1] -cp ./lib/sonar-application-8.9.9.56886.jar;C:\sonarqube\sonarqube-8.9.9.56886\lib\jdbc\h2\h2-1.4.199.jar org.sonar.server.app.WebServer C:\sonarqube\sonarqube-8.9.9.56886\temp\sq-process16684317784465325676properties jvm 1 | 2022.09.07 10:40:03 WARN app[][startup] #################################################################################################################### jvm 1 | 2022.09.07 10:40:03 WARN app[][startup] Default Administrator credentials are still being used. Make sure to change the password or deactivate the account. jvm 1 | 2022.09.07 10:40:03 WARN app[][startup] #################################################################################################################### jvm 1 | 2022.09.07 10:40:18 INFO app[][o.s.a.SchedulerImpl] Process[web] is stopped jvm 1 | 2022.09.07 10:40:18 INFO app[][o.s.a.SchedulerImpl] Process[es] is stopped jvm 1 | 2022.09.07 10:40:18 INFO app[][o.s.a.SchedulerImpl] SonarQube is stopped wrapper | <-- Wrapper Stopped
排查与解决步骤
- 查看Web服务详细日志:前往SonarQube安装目录的
logs文件夹,打开web.log文件,里面会记录Web服务终止的具体原因(如内存溢出、端口冲突、文件权限不足等),这是定位问题的核心依据。 - 验证JDK环境:
- 确认使用的是官方Oracle JDK 11或OpenJDK 11正式版本,避免使用修改版或精简版JDK。
- 检查系统
JAVA_HOME环境变量是否指向JDK 11的安装目录,且PATH变量中JDK 11的bin目录优先级高于其他Java版本。
- 调整内存配置:默认内存分配可能不足以支撑Web服务运行,修改
conf/sonar.properties中的以下参数(根据系统可用内存调整,建议不超过系统内存的50%):sonar.web.javaOpts=-Xmx1024m -Xms512m -XX:MaxMetaspaceSize=256m sonar.search.javaOpts=-Xmx1024m -Xms512m -XX:MaxDirectMemorySize=256m - 检查端口占用:使用命令
netstat -ano | findstr :9000和netstat -ano | findstr :9001,确认SonarQube主端口(9000)和内置ES端口(9001)未被其他程序占用,若占用则终止对应进程或修改SonarQube端口配置。 - 以管理员身份运行:右键点击
StartSonar.bat,选择“以管理员身份运行”,避免因Windows权限限制导致文件读写或进程启动失败。 - 临时关闭安全软件:暂时关闭Windows Defender防火墙或第三方杀毒软件,排除安全软件拦截SonarQube进程或端口的可能。
- 检查系统兼容性:确保Windows版本为Win10及以上,且已安装VC++ Redistributable运行库,SonarQube内置的ES对系统环境有一定要求。
内容的提问来源于stack exchange,提问作者Developing Electronics
相关产品推荐
相关产品推荐

