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

问题描述 投票:0回答:4

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

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

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

嗯,问题是:

java.lang.instrument.IllegalClassFormatException: Error while instrumenting path/to/class

我正在使用Jacoco“0.8.1”

java --version
openjdk 17.0.1 2021-10-19

和 JDK 1.8

有谁知道如何处理吗?

android android-testing jacoco jacoco-maven-plugin
4个回答
16
投票

奇怪的说法

和 JDK 1.8

一起

java --version
openjdk 17.0.1 2021-10-19

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

我正在使用 Jacoco“0.8.1”

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


8
投票

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

<plugin>
  <groupId>org.jacoco</groupId>
  <artifactId>jacoco-maven-plugin</artifactId>
  <version>0.8.8</version>
</plugin>

3
投票

当我使用命令 mvnw test 在 cmd 中测试我的构建时,我收到“构建错误”java.lang.instrument.IllegalClassFormatException:检测 sun/util/resources/cldr/provider/CLDRLocaleDataMetaInfo 时出错。

执行步骤:

1.分析错误在哪里。 始终检查项目文件夹 /target/surefire-reports 下的构建错误或任何测试报告。 因为这是一个构建错误,签入转储文件 检查错误消息。在这种特殊情况下,错误消息是 “Jacocojava.lang.instrument.IllegalClassFormatException:检测 sun/util/resources/cldr/provider/CLDRLocaleDataMetaInfo 时出错”

2.调查导致此错误的原因。我的java版本是17,Jacoco版本是0.8.5。所以检查你的java版本和Jacoco版本

3.检查java版本 Cmd 输入 java - version : 会显示版本 示例 C:\Automation\projectJenkins\jgsu-spring-petclinic>java -version java 版本“17.0.6”2023-01-17 LTS

4.对于java 15及以上版本,兼容的jococ版本是0.8.7。 打开项目的pom文件并更新jococ版本。检查“通用属性”下。将您的版本更新为0.8.7

示例:

<jacoco.version>0.8.7</jacoco.version>

保存文件

  1. 最后一步。测试你的构建。 cmd运行MVNW测试。 问题已解决并成功构建。

0
投票

我正在使用 jacoco 版本 0.8.2 和 java 11。它们是兼容的,但我仍然收到此错误。有谁可以帮忙吗。

© www.soinside.com 2019 - 2024. All rights reserved.