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

GitHub Actions单元测试报错Unsupported class file major version 55求助

解决GitHub Action中Java单元测试的"Unsupported class file major version 55"错误

先验证Java环境是否真正切换到11

首先确认setup-java步骤是否在编译、测试等依赖Java的步骤之前执行,并且环境确实生效。可以在setup-java后添加一个验证步骤:

- name: 检查Java版本
  run: java -version

如果输出不是Java 11,说明setup-java的位置有误,需要把它移到所有需要Java的步骤(比如mvn test或gradle test)之前。

检查项目编译配置

报错说明存在用高于Java 11版本编译的class文件,可能是本地用高版本Java编译后提交的,或者项目编译配置未指定Java 11:

  • Maven项目:修改pom.xml中的maven-compiler-plugin配置,强制用Java 11编译:
<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <version>3.8.1</version>
  <configuration>
    <source>11</source>
    <target>11</target>
    <release>11</release>
  </configuration>
</plugin>
  • Gradle项目:修改build.gradle中的Java版本配置:
java {
    sourceCompatibility = JavaVersion.VERSION_11
    targetCompatibility = JavaVersion.VERSION_11
}

清理旧编译产物

GitHub Action的缓存或项目残留的旧class文件可能导致问题,在编译前添加清理步骤:

  • Maven:
- name: 清理旧产物
  run: mvn clean
  • Gradle:
- name: 清理旧产物
  run: ./gradlew clean

确保环境变量正确绑定

有些Runner可能存在多Java版本共存的情况,显式绑定JAVA_HOME避免版本切换:

- name: Set up Java
  uses: actions/setup-java@v3
  id: setup-java
  with:
    distribution: 'zulu'
    java-version: '11'
    cache: 'maven' # 用Gradle就改成'gradle'
- name: 绑定JAVA_HOME到环境变量
  run: echo "JAVA_HOME=${{ steps.setup-java.outputs.path }}" >> $GITHUB_ENV

检查测试框架兼容性

旧版本的测试框架(比如JUnit 4.x早期版本)可能和Java 11不兼容,升级测试框架版本:

  • JUnit 4升级到4.13.2及以上
  • JUnit 5升级到5.7.0及以上

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 03:47:22