声纳扫描仪不支持 major.minor 版本异常
Unsupported major.minor version Exception for sonar-scanner
我正在尝试使用 SonarQube 分析我的源代码。我正在尝试使用 sonar-scanner
作为从命令行进行 运行 分析的工具。我遵循了本文档文章中提供的指南:http://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner
当我尝试通过 运行ning 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.access0(URLClassLoader.java:71)
at java.net.URLClassLoader.run(URLClassLoader.java:361)
at java.net.URLClassLoader.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 目录。
任何正确方向的帮助都将不胜感激。
这里已经详细回答了这个问题:Unsupported major.minor version 52.0 and here : How to fix java.lang.UnsupportedClassVersionError: Unsupported major.minor version
原因是当声纳 类 已针对 java 8 编译时,您试图在 Java 7 或更低版本上执行声纳,从而触发此错误。
纠结了一段时间后,我找到了问题的原因。 CLI 正在查看您的 JAVA_HOME
路径变量以确定它需要使用的 Java 的版本。即使默认 java
和 javac
命令指向 JDK 8,将 JAVA_HOME 环境变量设置为您的 JDK 8 根目录也解决了这个问题。
希望这可以帮助其他面临类似问题的人。
我正在尝试使用 SonarQube 分析我的源代码。我正在尝试使用 sonar-scanner
作为从命令行进行 运行 分析的工具。我遵循了本文档文章中提供的指南:http://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner
当我尝试通过 运行ning 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.access0(URLClassLoader.java:71)
at java.net.URLClassLoader.run(URLClassLoader.java:361)
at java.net.URLClassLoader.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 目录。
任何正确方向的帮助都将不胜感激。
这里已经详细回答了这个问题:Unsupported major.minor version 52.0 and here : How to fix java.lang.UnsupportedClassVersionError: Unsupported major.minor version
原因是当声纳 类 已针对 java 8 编译时,您试图在 Java 7 或更低版本上执行声纳,从而触发此错误。
纠结了一段时间后,我找到了问题的原因。 CLI 正在查看您的 JAVA_HOME
路径变量以确定它需要使用的 Java 的版本。即使默认 java
和 javac
命令指向 JDK 8,将 JAVA_HOME 环境变量设置为您的 JDK 8 根目录也解决了这个问题。
希望这可以帮助其他面临类似问题的人。