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

Linux下启动SonarQube wrapper遭遇JVM错误求助

我之前也碰到过类似的JVM启动问题,结合你用的SonarQube 6.7.2版本(这个版本确实比较老,不过先聚焦解决当前问题),可以从这几个方向排查和解决:

1. 确认JVM版本兼容性

SonarQube 6.7.2明确要求使用Java 8(不管是OpenJDK还是Oracle JDK都可以,但绝对不能用Java 9及以上版本)。你先跑个命令确认当前系统的Java版本:

java -version

如果版本不对,赶紧安装Java 8并设置为默认:

  • Debian/Ubuntu系:sudo apt-get install openjdk-8-jdk
  • RHEL/CentOS系:sudo yum install java-1.8.0-openjdk
  • 设置默认版本:sudo update-alternatives --config java,选中Java 8的选项即可
2. 检查文件权限与路径正确性

你执行的wrapper脚本和build.sh都可能存在权限或路径问题:

  • 先确认wrapper文件存在且有执行权限:
ls -l /opt/sonarqube-6.7.2/bin/linux-x86-64/wrapper

如果没有执行权限,添加权限:chmod +x /opt/sonarqube-6.7.2/bin/linux-x86-64/wrapper

  • 同样检查build.sh的权限:
chmod +x /home/some_user/some_storage/sonar-scanning-examples/sonarqube-scanner-build-wrapper-linux/build.sh

另外要确保你输入的两个文件路径完全正确,别打错字符或者漏了目录。

3. 查看日志找具体错误原因

JVM启动错误的细节一般都会写在SonarQube的日志里,你去这两个日志文件里找线索:

  • SonarQube主日志:/opt/sonarqube-6.7.2/logs/sonar.log
  • Wrapper专属日志:/opt/sonarqube-6.7.2/logs/wrapper.log
    日志里会明确告诉你是内存不足、配置错误还是其他问题,比如OutOfMemoryError就说明内存不够,ClassNotFoundException可能是JDK版本不对。
4. 调整JVM内存配置(如果日志提示内存不足)

如果日志显示内存不够,就修改SonarQube的配置文件/opt/sonarqube-6.7.2/conf/sonar.properties,找到这两个参数调整内存大小:

# 调整Web服务的JVM内存
sonar.web.javaOpts=-Xmx1024m -Xms256m -XX:+HeapDumpOnOutOfMemoryError
# 调整Elasticsearch的JVM内存
sonar.search.javaOpts=-Xmx1024m -Xms1024m -XX:+HeapDumpOnOutOfMemoryError

根据你的系统内存情况来改,比如系统有4G内存的话,给每个分配1G就够了,改完重启SonarQube再试。

5. 先单独运行build.sh排除项目构建问题

有时候问题不一定出在SonarQube的wrapper上,你可以先跳过wrapper,直接运行build.sh看看项目能不能正常编译:

cd /home/some_user/some_storage/sonar-scanning-examples/sonarqube-scanner-build-wrapper-linux && ./build.sh

如果build.sh本身就报错,那得先解决项目构建的问题,比如安装gcc、make这些编译工具,等项目能正常构建了再用wrapper跑Sonar扫描。

内容的提问来源于stack exchange,提问作者Ugnius Malūkas

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:25:14