【问题标题】:Jenkins-SonarRunnerInstallation - Unsupported major.minor version 52.0Jenkins-SonarRunnerInstallation - 不支持的 major.minor 版本 52.0
【发布时间】:2017-05-17 08:50:49
【问题描述】:

我对 Jenkins 有疑问 - 执行 SonarQube 扫描仪构建选项。

我们的环境详情如下:

 - Jenkins Master Server OS: Ubuntu-12.04 LTS-64 Bit. 
 - Master Server Jenkins Version: 2.46.2 
 - SonarQube Scanner Plugin for Jenkins -Version - 2.6.1 
 - Build Type: Master and Slave Based.  
 - Slave Machine: Ubuntu-14.04-LTS (64-Bit)  
 - SonarQube Server Version - 5.1 (64-Bit)  
 - Sonar-runner version 2.4  
 - Slave Machine Java Version – 1.8

问题描述:- 我在 Jenkins 主服务器本身的“分析属性”类别下定义了 sonar.project.properties 信息,当我尝试通过它执行相同操作时,它失败并出现以下错误.java.lang.UnsupportedClassVersionError:

hudson/plugins/sonar/SonarRunnerInstallation$1 : Unsupported major.minor version 52.0 at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:803)
at java.lang.ClassLoader.defineClass(ClassLoader.java:643)
Caused: java.lang.ClassFormatError: Failed to load hudson.plugins.sonar.SonarRunnerInstallation$1

请帮我解决这个问题。

【问题讨论】:

  • 您的目标可能是比您的项目支持的 Java 版本更新。
  • 我试过java版本“1.7.0_121”和openjdk版本“1.8.0_111”。

标签: java jenkins sonarqube jenkins-slave


【解决方案1】:

问题是因为 Java 版本不匹配。从 Wikipedia Java Class Reference 您可以找到所有代码:J2SE 8 = 52,J2SE 7 = 51,J2SE 6.0 = 50,J2SE 5.0 = 49

此错误是因为您在运行时使用的 JDK(可能为 7)低于用于编译该版本 Jenkins 的 8 JDK

【讨论】:

  • 在启动 Jenkins 时需要确保 Java 版本 8 在您的路径中。服务器同时安装了 Java 7 和 8。
  • 嗨 Denis,我的 Jenkins 从机有以下变量,JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 JRE_HOME=/usr/lib/jvm/java-8-openjdk- amd64/jre PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH 仍然失败。
  • 如果你一直有这个问题,你可以写一个 JenkinsFile 来强制设置 JAVA_HOME 1.7 用于测试部分和 1.8 用于 Sonarqube
  • 通过添加 JENKINS_JAVA_CMD 环境变量并指向 Node/Slave Machine 上的 Java-1.8 路径解决了问题。
猜你喜欢
  • 1970-01-01
  • 2018-08-24
  • 1970-01-01
  • 2017-01-23
  • 2017-06-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多