2016-09-24 54 views
7

我想用SonarQube分析我的源代碼。我試圖使用sonar-scanner作爲我的工具從命令行運行分析。我跟着這個文檔文章中介紹的指導原則:http://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner不支持的major.minor版本聲納掃描儀的例外

當我嘗試通過運行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目錄。

任何幫助在正確的方向表示讚賞。

回答

10

經過一段時間的掙扎後,我發現問題的原因。 CLI正在查看您的JAVA_HOME路徑變量以找出它需要使用的Java版本。即使強硬的默認javajavac命令指向JDK 8,將JAVA_HOME環境變量設置爲您的JDK 8根目錄解決了問題。

希望這可以幫助其他人面臨類似的問題。

2

這已經在長度被已經回答了這裏:Unsupported major.minor version 52.0這裏:How to fix java.lang.UnsupportedClassVersionError: Unsupported major.minor version

的理由是,你要在Java 7或更低的執行聲納當聲納類編譯爲Java 8由此觸發這個錯誤。

+0

正如我已經在我的問題中已經說過,我已經嘗試使用JDK 7和JDK 8運行該工具。我仍然得到相同的錯誤。 – Amrish

+0

正如你在問題中所說的那樣,「你已經檢查了JAVA_HOME環境變量」....我很抱歉,除了我指出你的正確答案之外,你執行的Java版本是錯誤的...... – Alex

相關問題