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

Java 1.8代码集成SonarQube(Java11)扫描失败,求解决方案

解决Jenkins中SonarQube扫描的UnsupportedClassVersionError问题

报错原因

你遇到的UnsupportedClassVersionError是因为SonarScanner的运行Java版本不匹配:SonarQube 7.9及以上版本要求SonarScanner使用Java 11运行(class文件版本55.0对应Java11),但当前Jenkins执行扫描步骤时用的是Java 1.8(仅支持到版本52.0)。

解决方案

以下是几种可行的解决方式,按需选择:

  • 为SonarScanner步骤单独指定Java11环境

    1. 进入Jenkins「全局工具配置」,添加Java11的安装(可选择自动下载或指定服务器上已有的Java11路径),命名为JDK11
    2. 在Jenkins项目中配置扫描步骤的Java环境:
      • 流水线项目:用withEnv临时切换Java环境执行扫描命令
        withEnv(['JAVA_HOME=/usr/lib/jvm/java-11-openjdk', 'PATH+JAVA=$JAVA_HOME/bin']) {
            sh 'sonar-scanner -Dsonar.projectKey=your-project-key -Dsonar.sources=src'
        }
        
      • 自由风格项目:在「构建环境」中勾选「使用特定的JDK」,选择配置好的JDK11
  • 升级Jenkins全局Java版本到11

    1. 确保代码编译时添加-source 1.8 -target 1.8参数,保证编译出的字节码兼容Java8(不影响业务运行)
    2. 修改Jenkins启动配置(通常是/etc/default/jenkins或启动脚本),将JAVA_HOME指向Java11路径,重启Jenkins服务
  • 降级SonarQube到兼容Java8的版本
    如果必须用Java8运行扫描,可将SonarQube降级到7.9.x LTS版本(该版本支持SonarScanner用Java8),但注意旧版本已停止维护,存在安全隐患,不推荐长期使用

原报错信息

ERROR: Error during SonarScanner execution java.lang.UnsupportedClassVersionError: org/sonar/batch/bootstrapper/EnvironmentInformation has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0 

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 09:55:09