Jacoco java.lang.instrument.IllegalClassFormatException:检测类时出错

LMa*_*ker 19 android jacoco android-testing jacoco-maven-plugin

我最近搬到了另一台计算机,需要重置我的所有环境。

所以,这个测试之前是有效的。

但我不记得我之前使用的是哪个版本的Java/JDK。

嗯,问题是:

java.lang.instrument.IllegalClassFormatException: Error while instrumenting path/to/class
Run Code Online (Sandbox Code Playgroud)

我正在使用Jacoco“0.8.1”

java --version
openjdk 17.0.1 2021-10-19
Run Code Online (Sandbox Code Playgroud)

和 JDK 1.8

谁能知道如何处理它?

God*_*din 23

奇怪的是看到声明

和 JDK 1.8

和...一起

java --version
openjdk 17.0.1 2021-10-19
Run Code Online (Sandbox Code Playgroud)

从上一篇看来,您实际上正在使用JDK 17

我正在使用 Jacoco“0.8.1”

我们(JaCoCo 的开发人员)建议始终使用最新发布的版本,因为新版本带有修复和改进(IMO 更新依赖项和工具的版本 - 一般来说也是一个非常好的做法),所以请尝试这个 - 截至今天最新发布的 JaCoCo 版本是0.8.7,正是在这个版本中添加了 JDK 17 支持。

  • 有同样的问题,单元测试也失败。将 Jacoco 0.8.8 与 JDK 18(语言级别 JDK 17)结合使用。 (6认同)
  • 从 0.8.5 更改为 0.8.7 为我消除了所有这些错误 (4认同)

小智 12

Java 17 需要 jacoco 0.8.8 及以上版本。重新加载 pom.xml 就可以了

<plugin>
  <groupId>org.jacoco</groupId>
  <artifactId>jacoco-maven-plugin</artifactId>
  <version>0.8.8</version>
</plugin>
Run Code Online (Sandbox Code Playgroud)