【问题标题】:Exception in thread "main" java.lang.reflect.InvocationTargetException while installing maven project安装 maven 项目时线程“主”java.lang.reflect.InvocationTargetException 中的异常
【发布时间】:2020-01-30 13:15:27
【问题描述】:

我正在尝试安装 maven 项目,但面临一个

异常:未能执行目标 org.apache.maven.plugins:maven-surefire-plugin:3.0.0-M3:test (默认测试)

有测试失败。

当我查看 .dump 文件时,我看到:

Exception in thread "main" java.lang.reflect.InvocationTargetException

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.instrument/sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:513)

at java.instrument/sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:525)

Caused by: java.lang.RuntimeException: Class java/lang/UnknownError could not be instrumented.

org.jacoco.agent.rt.internal_c13123e.core.runtime.ModifiedSystemClassRuntime.createFor(ModifiedSystemClassRuntime.java:140)

org.jacoco.agent.rt.internal_c13123e.core.runtime.ModifiedSystemClassRuntime.createFor(ModifiedSystemClassRuntime.java:101)

    at org.jacoco.agent.rt.internal_c13123e.PreMain.createRuntime(PreMain.java:55)

    at org.jacoco.agent.rt.internal_c13123e.PreMain.premain(PreMain.java:47)

Caused by: java.lang.NoSuchFieldException: $jacocoAccess

    at java.base/java.lang.Class.getField(Class.java:1999)

org.jacoco.agent.rt.internal_c13123e.core.runtime.ModifiedSystemClassRuntime.createFor(ModifiedSystemClassRuntime.java:138)

*** java.lang.instrument ASSERTION FAILED ***: "result" with message agent load/premain call failed at  line: 422

我很确定代码中没有任何问题,因为它在其他计算机上运行良好。跳过测试不是一个选项,因为它是一个集成测试模块

【问题讨论】:

  • 我看到了类似的问题,但是我打开了这个主题,因为现有的答案并没有解决我的问题
  • 很可能是 jacoco 版本与运行 maven 项目的 JDK 版本不兼容。尝试 google 'NoSuchFieldException: $jacocoAccess' 你会发现一些有用的结果

标签: java maven exception plugins


【解决方案1】:

下面的答案有所帮助。对我来说,这是 Jacoco 版本和我的 JDK 之间的问题。

有两种方法可以解决这个问题:

  1. 确保有适合您的 JDK 的版本并升级 jacoco
  2. 使用较旧的 JDK

【讨论】:

  • 升级 Jacoco 为我解决了升级到 Java 11 后的问题
【解决方案2】:

只是添加到给定的答案。我的问题是因为我使用的是 Java 14。JaCoCo 需要旧版本。所以我下载并安装了JDK 1.8.0。现在在 IntelliJ 中:

转到project structure(右上角)

点击Project Settings下的Project

然后选择JDK 1.8

【讨论】:

  • 另外——如果这没有帮助,并且你也在使用 Gradle(?)——确保(设置>构建>工具>)Gradle 页面显示“Gradle JVM”设置也是1.8(与上面的项目SDK相同)
猜你喜欢
  • 1970-01-01
  • 2015-08-11
  • 2021-03-13
  • 2015-08-02
  • 1970-01-01
  • 2016-07-22
  • 2013-11-30
  • 2015-10-21
  • 2013-02-17
相关资源
最近更新 更多