sonar-scanner出现"Unsupported major.minor version Exception"异常

11
我正在尝试使用SonarQube分析我的源代码。我尝试使用sonar-scanner作为我的工具从命令行运行分析。我遵循了此文档文章中提供的指南:http://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner
当我尝试通过运行sonar-scanner -h来测试安装时,我得到以下错误:
➜  ~ sonar-scanner -h
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/sonarsource/scanner/cli/Main : Unsupported major.minor version 52.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)

从错误信息来看,似乎无法找到正确的JAVA/JRE版本来运行cli工具。我的理解是,该工具应与任何Java 1.7+版本兼容。我正在使用Oracle JDK 1.7.0_55,我还尝试使用OpenJDK 1.8,但仍然遇到相同的错误。我还检查了我的JAVA_HOME变量是否设置为正确的JDK目录。

欢迎提供任何有用的帮助。

2个回答

17

我曾经为此苦苦挣扎,后来我找到了问题的原因。CLI查看您的JAVA_HOME路径变量以确定它需要使用的Java版本。尽管默认的javajavac命令指向JDK 8,但将JAVA_HOME环境变量设置为JDK 8根目录即可解决该问题。

希望这能帮助其他遇到相似问题的人。


4

就像我在我的问题中已经说过的那样,我尝试使用JDK 7和JDK 8运行该工具。我仍然收到相同的错误。 - Amrish
正如你在问题中所说,“你已经检查了JAVA_HOME环境变量”……很抱歉,除此之外我指出了正确的答案,你执行的Java版本是错误的。 - Alex

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接