Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JaCoCo在设置log4j.configurationFactory系统属性后停止工作_Java_Log4j_Jacoco - Fatal编程技术网

Java JaCoCo在设置log4j.configurationFactory系统属性后停止工作

Java JaCoCo在设置log4j.configurationFactory系统属性后停止工作,java,log4j,jacoco,Java,Log4j,Jacoco,JaCoCo在设置log4j.configurationFactory系统属性后停止工作 java.lang.reflect.InvocationTargetException FATAL ERROR in native method: processing of -javaagent failed at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodA

JaCoCo在设置
log4j.configurationFactory
系统属性后停止工作

java.lang.reflect.InvocationTargetException
FATAL ERROR in native method: processing of -javaagent failed
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:386)
    at sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:401)
Caused by: java.lang.RuntimeException: Class java/util/UUID could not be instrumented.
    at org.jacoco.agent.rt.internal_6da5971.core.runtime.ModifiedSystemClassRuntime.createFor(ModifiedSystemClassRuntime.java:140)
    at org.jacoco.agent.rt.internal_6da5971.core.runtime.ModifiedSystemClassRuntime.createFor(ModifiedSystemClassRuntime.java:101)
    at org.jacoco.agent.rt.internal_6da5971.PreMain.createRuntime(PreMain.java:55)
    at org.jacoco.agent.rt.internal_6da5971.PreMain.premain(PreMain.java:47)
    ... 6 more
Caused by: java.lang.NoSuchFieldException: $jacocoAccess
    at java.lang.Class.getField(Class.java:1703)
    at org.jacoco.agent.rt.internal_6da5971.core.runtime.ModifiedSystemClassRuntime.createFor(ModifiedSystemClassRuntime.java:138)
    ... 9 more
Exception in thread "main" 
我读到过关于JaCoCo和jdk1.8的类似错误,但它已经在jacoco0.7.7中解决了

VM参数的定义如下所示:

-Dlog4j.configurationFactory=mytest.CustomConfigurationFactory
-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager
-Dcom.sun.management.jmxremote.rmi.port=9090
-Dcom.sun.management.jmxremote=true
-Dcom.sun.management.jmxremote.port=9090
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.local.only=false
-Djava.rmi.server.hostname=localhost
-javaagent:/path/jacocoagent.jar=destfile=C:/TEMP/jacoco.exec,jmx=true
我正在使用:

  • JaCoCo 0.7.7
  • Log4j 2.8.1
  • JDK 1.8.0_102
有人知道如何解决吗?

如中所述:

当使用log4jdk日志适配器并且JaCoCo代理注册JMX MBean时,JaCoCo(直到今天的最新版本为0.7.9)、JMX和日志之间的交互似乎存在一个真正的问题。与此同时,更深入的调查需要一些时间

  • JaCoCo代理应配置为不注册JMX MBean,即不注册
    jxm=true
    或与
    jxm=false
    等效(
    -javaagent:jacocoagent.jar=JMX=false
    ),需要注意的是,JMX并不是与JaCoCo agent进行远程连接的唯一选项—在
    output=tcpserver
    output=tcpclient

  • 不应使用任何一个Log4j JDK日志适配器,即没有
    -Djava.util.Logging.manager=org.apache.Logging.Log4j.jul.LogManager

使现代化 这是一张关于JaCoCo方面的修正票,它解释了会发生什么-

如中所述:

当使用log4jdk日志适配器并且JaCoCo代理注册JMX MBean时,JaCoCo(直到今天的最新版本为0.7.9)、JMX和日志之间的交互似乎存在一个真正的问题。与此同时,更深入的调查需要一些时间

  • JaCoCo代理应配置为不注册JMX MBean,即不注册
    jxm=true
    或与
    jxm=false
    等效(
    -javaagent:jacocoagent.jar=JMX=false
    ),需要注意的是,JMX并不是与JaCoCo agent进行远程连接的唯一选项—在
    output=tcpserver
    output=tcpclient

  • 不应使用任何一个Log4j JDK日志适配器,即没有
    -Djava.util.Logging.manager=org.apache.Logging.Log4j.jul.LogManager

使现代化
这是一张关于JaCoCo方面的修正票,解释了发生了什么-

向下投票人,你能解释一下向下投票的原因吗?对于我(JaCoCo开发人员之一)来说,这个问题看起来非常有效,并揭示了日志记录、JMX和JaCoCo之间的交互中的一个实际问题,如下面的回答中所解释的-DownVoting,您能解释一下downvote的原因吗?对于我(JaCoCo开发人员之一)来说,这个问题看起来非常有效,并揭示了日志、JMX和JaCoCo之间交互中的一个实际问题,如下面的回答所述-