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

Dotnet SonarScanner检测不到Java但JAVA_HOME已配置的问题排查求助

Dotnet SonarScanner检测不到Java但JAVA_HOME已配置的问题排查求助

看起来你遇到的问题核心是JAVA_HOME的配置路径错误,我帮你梳理下问题细节和解决步骤:

你的问题场景

执行SonarScanner结束命令时触发找不到Java的错误:

~/project$ /usr/bin/dotnet sonarscanner end /d:sonar.login="admin" /d:sonar.password="user"

错误日志如下:

SonarScanner for MSBuild 5.5.3
Using the .NET Core version of the Scanner for MSBuild
Post-processing started.
Calling the SonarScanner CLI... Could not find 'java' executable in JAVA_HOME or PATH. The SonarScanner did not complete successfully
20:05:32.56 Post-processing failed. Exit code: 1

你的Java本身是正常可用的(java --version能正常输出OpenJDK 11的信息),但环境变量的配置方式不符合SonarScanner的预期。

核心问题:JAVA_HOME配置错误

你当前的JAVA_HOME指向的是具体的Java可执行文件路径:

echo $JAVA_HOME
# 输出:/usr/lib/jvm/java-11-openjdk-amd64/bin/java

但JAVA_HOME的正确配置应该是JRE/JDK的根目录,而不是bin/java这个具体文件。同时你的PATH也直接添加了java文件路径,正确的做法是把JRE/JDK的bin目录加入PATH。

修复步骤

  1. 修正环境变量配置
    打开用户级配置文件~/.bashrc(如果需要全局生效可以修改/etc/profile),找到设置JAVA_HOME和PATH的行,替换为:

    export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
    export PATH=$JAVA_HOME/bin:$PATH
    

    保存后执行以下命令让配置立即生效:

    source ~/.bashrc
    
  2. 验证配置是否正确
    重新打开一个终端(避免缓存影响),依次执行以下命令检查:

    echo $JAVA_HOME  # 应输出:/usr/lib/jvm/java-11-openjdk-amd64
    echo $PATH       # 开头应包含:/usr/lib/jvm/java-11-openjdk-amd64/bin
    which java       # 应指向:/usr/lib/jvm/java-11-openjdk-amd64/bin/java
    
  3. 关于C#插件的疑问
    不需要手动编译和添加C#插件,SonarQube 8.9.x社区版已经默认集成了C#代码分析所需的插件,所以这不是当前问题的原因,先解决Java环境变量问题即可。

备注:内容来源于stack exchange,提问作者Машина

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.20 10:13:04