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

Mac系统下SonarQube 7.1无法启动问题求助

SonarQube 7.1 无法在 macOS 通过 sonar.sh console 启动的排查方案

问题重现

你已经下载了SonarQube 7.1,执行启动命令:

./bin/macosx-universal-64/sonar.sh console

但启动失败,目前能看到的截断日志如下:

Running SonarQube...

--> Wrapper Started as Console
Launching a JVM...
Wrapper (Version 3.2.3) http://wrapper.tanukisoftware.org
Copyright 1999-2006 Tanuki Software, Inc. All Rights Reserved.
2018.04.26 14:57:34 INFO app[][o.s.a.AppFileSystem] Cleaning or creating temp directory /Users/deep...

由于日志被截断看不到核心错误,我整理了几个针对性的排查步骤:


排查步骤

  1. 获取完整启动日志
    SonarQube的核心错误日志都存在安装目录的logs文件夹下,重点查看这三个文件:

    • sonar.log:主应用运行日志
    • web.log:Web服务启动日志
    • wrapper.log:JVM包装器的详细启动日志
      可以用命令快速查看最新200行内容:
    tail -200 /path/to/sonarqube/logs/wrapper.log
    

    (替换/path/to/sonarqube为你的实际安装路径)

  2. 检查Java版本兼容性
    SonarQube 7.1仅支持JDK 8(Oracle JDK或OpenJDK均可),完全不兼容JDK 9及以上版本。执行以下命令确认当前Java版本:

    java -version
    

    如果输出显示版本为9+,需要切换到JDK 8:

    • 可以用export JAVA_HOME=/path/to/jdk8临时指定JDK路径,或者修改系统默认Java版本。
  3. 修复文件权限问题
    macOS下解压SonarQube压缩包后,可能出现temp、logs等目录权限不足的情况,导致启动失败。执行以下命令赋予当前用户完整权限:

    sudo chown -R $(whoami) /path/to/sonarqube
    
  4. 检查端口占用情况
    SonarQube默认使用9000端口,如果该端口被其他进程占用,会直接导致启动失败。执行以下命令查看端口占用:

    lsof -i :9000
    

    如果有结果返回,说明端口被占用,可以:

    • 杀掉占用端口的进程:kill -9 <PID>(替换<PID>为输出中的进程ID)
    • 修改SonarQube端口:编辑conf/sonar.properties文件,找到sonar.web.port字段,改成其他未被占用的端口(如9001),保存后重新启动。
  5. 调整JVM内存配置
    部分情况下,默认的JVM内存分配不足会导致启动失败。可以编辑conf/wrapper.conf文件,调整以下参数:

    wrapper.java.initmemory=256
    wrapper.java.maxmemory=512
    

    根据你的机器配置适当调高数值(比如改成512和1024),然后重新启动尝试。


内容的提问来源于stack exchange,提问作者Deepak Agrawal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:41:55