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

Jenkins使用JDK8运行SonarQube 9.1扫描报类版本不兼容错误

问题根因
  • 报错中的class file version 55.0是JDK 11编译生成的类版本号,而52.0是JDK 8支持的最高类版本号
  • SonarQube 9.1的官方客户端扫描器(SonarScanner)基于JDK 11编译,必须运行在JDK 11及以上的环境中
  • 你当前Jenkins任务全局指定了使用JDK 8,执行Sonar扫描步骤时自动使用JDK 8启动扫描器,版本不匹配触发了该报错

注:SonarScanner的运行JDK版本和待扫描业务代码的编译JDK版本无绑定关系,高版本JDK运行的扫描器完全支持扫描低版本JDK编译的代码

解决方案(优先推荐第一种)

方案1:Jenkins任务分阶段指定JDK版本(无业务兼容性影响)

无需修改业务代码的编译JDK配置,仅单独调整Sonar扫描步骤的运行JDK即可:

  1. 先在Jenkins的「全局工具配置」中新增JDK 11的安装配置,记录服务器上JDK 11的实际安装路径
  2. 编辑对应Jenkins任务,根据你使用的扫描方式调整配置:
    • 如果你是通过shell命令执行扫描:在原有sonar-scanner命令前新增环境变量指定
      # 替换为你服务器上实际的JDK11安装路径
      export JAVA_HOME=/usr/local/jdk-11
      export PATH=$JAVA_HOME/bin:$PATH
      # 原有sonar-scanner执行命令保持不变
      
    • 如果你使用Jenkins官方SonarQube Scanner插件:直接在扫描步骤的「JDK」下拉选项中选择提前配置好的JDK 11即可

方案2:降级SonarQube版本(不推荐)

如果暂时无法在Jenkins节点上安装JDK 11,可以将SonarQube服务端降级到8.9 LTS版本,该版本的SonarScanner支持在JDK 8环境下运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 00:15:09