此版本的 Java 运行时仅识别最高 52.0 的类文件版本

Posted

技术标签:

【中文标题】此版本的 Java 运行时仅识别最高 52.0 的类文件版本【英文标题】:This version of the Java Runtime only recognizes class file versions up to 52.0 【发布时间】:2021-12-31 22:41:57 【问题描述】:

Linux CentOS

jdk = 11

SonarQube 9.1

詹金克斯 2.17

Jenkins的工作使用jdk 8

当我尝试运行 Jenkins 的作业时出现错误:

ERROR: Error during SonarQube Scanner execution
java.lang.UnsupportedClassVersionError: org/sonar/batch/bootstrapper/EnvironmentInformation has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
    at org.sonarsource.scanner.api.internal.IsolatedClassloader.loadClass(IsolatedClassloader.java:82)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at org.sonarsource.scanner.api.internal.batch.DefaultBatchFactory.createBatch(DefaultBatchFactory.java:35)
    at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.start(BatchIsolatedLauncher.java:52)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at org.sonarsource.scanner.api.internal.IsolatedLauncherProxy.invoke(IsolatedLauncherProxy.java:60)
    at com.sun.proxy.$Proxy0.start(Unknown Source)
    at org.sonarsource.scanner.api.EmbeddedScanner.doStart(EmbeddedScanner.java:220)
    at org.sonarsource.scanner.api.EmbeddedScanner.start(EmbeddedScanner.java:156)
    at org.sonarsource.scanner.cli.Main.execute(Main.java:74)
    at org.sonarsource.scanner.cli.Main.main(Main.java:61)
ERROR: 
ERROR: Re-run SonarQube Scanner using the -X switch to enable full debug logging.

【问题讨论】:

【参考方案1】:

使用 SonarQube 9.x 要求扫描仪至少使用 Java 11 运行。您显然是在使用 Java 8 运行它。那是行不通的。

【讨论】:

以上是关于此版本的 Java 运行时仅识别最高 52.0 的类文件版本的主要内容,如果未能解决你的问题,请参考以下文章

Ubuntu执行jar文件[重复]

服务器部署项目出现问题:Unsupported major.minor version 52.0

Unsupported major.minor version 52.0

Android studio Unsupported major.minor version 52.0

我的应用程序中不支持的 major.minor 版本 52.0

java.lang.UnsupportedClassVersionError: com/my/test/TestUser : Unsupported major.minor version 52.0(