Jenkins集成SonarQube扫描代码报错:LinkageError加载主类失败
问题原因解析
这个报错的核心是Java版本不兼容,具体细节如下:
- 报错里的
class file version 61.0对应Java 17,说明你当前使用的Sonar Scanner是用Java 17编译的 class file versions up to 55.0对应Java 11,说明Jenkins执行扫描任务时,调用的是Java 11(或更低版本)的运行环境
当低版本Java运行环境尝试加载高版本Java编译生成的类文件时,就会触发UnsupportedClassVersionError,进而引发LinkageError导致扫描任务失败。
常见的具体场景:
- Jenkins全局配置的JDK版本为Java 11,但你安装的Sonar Scanner版本要求Java 17及以上
- 你的Jenkins项目没有指定符合Scanner要求的JDK版本,默认使用了全局配置的低版本Java
- 虽然SonarQube服务器本身的Java版本达标,但扫描器运行时(Jenkins侧)的Java版本不匹配
内容的提问来源于stack exchange,提问作者Desh Deepak Dhobi
相关产品推荐
相关产品推荐

