You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

克隆Guava项目用JDK11运行单元测试遇UnsupportedClassVersionError

问题解决:Guava单元测试在JDK11下报UnsupportedClassVersionError

错误原因

报错核心是com/google/errorprone/ErrorProneJavacPlugin类由JDK17编译(对应类文件版本61.0),而你的本地环境是JDK11(仅支持最高类文件版本55.0),导致JVM无法加载该类。同时项目指定的-sourcepath参数与自动计算路径冲突,触发了编译器异常。

解决步骤

  • 方法1:降级ErrorProne版本
    在Guava项目的构建文件中,找到ErrorProne依赖配置,将版本降级至兼容JDK11的版本(如2.18.0):

    • Maven示例修改:
      <dependency>
        <groupId>com.google.errorprone</groupId>
        <artifactId>error_prone_core</artifactId>
        <version>2.18.0</version>
        <scope>provided</scope>
      </dependency>
      
    • Gradle示例修改:
      dependencies {
        errorprone 'com.google.errorprone:error_prone_core:2.18.0'
      }
      
  • 方法2:构建时禁用ErrorProne
    若无需ErrorProne代码检查,可跳过该插件:

    • Maven执行测试时添加参数:
      mvn test -Dmaven.compiler.fork=true -Dmaven.compiler.executable=$JAVA_HOME/bin/javac -Xlint:-options
      
    • Gradle修改build.gradle移除插件:
      plugins {
        // 注释或移除ErrorProne插件配置
        // id "net.ltgt.errorprone" version "3.1.0"
      }
      
  • 方法3:升级本地JDK版本
    将本地JDK升级至17或更高版本,直接兼容类文件版本61.0,彻底解决版本不匹配问题。

额外提示

修改配置后,先执行清理命令(Maven:mvn clean;Gradle:./gradlew clean)清除旧构建缓存,再重新运行单元测试确保配置生效。

内容的提问来源于stack exchange,提问作者Poo Yoo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 02:52:04