Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.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
为什么Gradle构建在java8中失败?_Java_Gradle - Fatal编程技术网

为什么Gradle构建在java8中失败?

为什么Gradle构建在java8中失败?,java,gradle,Java,Gradle,我们有Gradle脚本,它正在构建具有不同sourceCompatibility和targetCompatibility的多个项目。如果我的环境变量JAVA_HOME设置为jdk7,那么所有项目都将成功构建。然后我将JAVA_HOME更改为jdk8。现在生成失败,出现以下错误: FATAL ERROR in native method: processing of -javaagent failed FATAL ERROR in native method: processing of -ja

我们有Gradle脚本,它正在构建具有不同sourceCompatibility和targetCompatibility的多个项目。如果我的环境变量JAVA_HOME设置为jdk7,那么所有项目都将成功构建。然后我将JAVA_HOME更改为jdk8。现在生成失败,出现以下错误:

 FATAL ERROR in native method: processing of -javaagent failed
FATAL ERROR in native method: processing of -javaagent failed

ava.lang.VerifyError: Expecting a stackmap frame at branch target 51
    Exception Details:
      Location:
        com/test/Tray.<clinit>()V @42: ifnull
      Reason:
        Expected stackmap frame at this location.
      Bytecode:
        0x0000000: 08bd 0063 5903 1264 5359 0412 6553 5905
        0x0000010: 1266 5359 0612 6753 5907 1268 53b3 006a
        0x0000020: 08bd 006c 5903 00b2 0080 c600 09b2 0080
        0x0000030: a700 0c12 82b8 0084 59b3 0080 0053 5904





java.lang.reflect.InvocationTargetException
        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:497)
        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_6l8m50.core.runtime.ModifiedSystemClassRuntime.createFor(ModifiedSystemClassRuntime.java:138)
        at org.jacoco.agent.rt_6l8m50.core.runtime.ModifiedSystemClassRuntime.createFor(ModifiedSystemClassRuntime.java:99)
        at org.jacoco.agent.rt_6l8m50.JacocoAgent.createRuntime(JacocoAgent.java:128)
        at org.jacoco.agent.rt_6l8m50.JacocoAgent.init(JacocoAgent.java:74)
        at org.jacoco.agent.rt_6l8m50.JacocoAgent.premain(JacocoAgent.java:165)
        ... 6 more
Caused by: java.lang.NoSuchFieldException: $jacocoAccess
        at java.lang.Class.getField(Class.java:1703)
        at org.jacoco.agent.rt_6l8m50.core.runtime.ModifiedSystemClassRuntime.createFor(ModifiedSystemClassRuntime.java:136)
        ... 10 more
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option UseSplitVerifier; support was removed in 8.0
Exception in thread "main" Could not write standard input into: Gradle Test Executor 2.
java.io.IOException: The pipe is being closed
        at java.io.FileOutputStream.writeBytes(Native Method)
        at java.io.FileOutputStream.write(FileOutputStream.java:326)
        at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
        at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140)
        at org.gradle.process.internal.streams.ExecOutputHandleRunner.run(ExecOutputHandleRunner.java:50)
        at org.gradle.internal.concurrent.DefaultExecutorFactory$StoppableExecutorImpl$1.run(DefaultExecutorFactory.java:64)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
java.lang.reflect.InvocationTargetException
        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:497)
        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_6l8m50.core.runtime.ModifiedSystemClassRuntime.createFor(ModifiedSystemClassRuntime.java:138)
        at org.jacoco.agent.rt_6l8m50.core.runtime.ModifiedSystemClassRuntime.createFor(ModifiedSystemClassRuntime.java:99)
        at org.jacoco.agent.rt_6l8m50.JacocoAgent.createRuntime(JacocoAgent.java:128)
        at org.jacoco.agent.rt_6l8m50.JacocoAgent.init(JacocoAgent.java:74)
        at org.jacoco.agent.rt_6l8m50.JacocoAgent.premain(JacocoAgent.java:165)
        ... 6 more
本机方法中出现致命错误:处理-javaagent失败
本机方法中出现致命错误:处理-javaagent失败
ava.lang.VerifyError:在分支目标51处应为stackmap帧
例外情况详情:
地点:
com/test/Tray.()V@42:ifnull
原因:
此位置应为stackmap帧。
字节码:
0x0000000:08bd 0063 5903 1264 5359 0412 6553 5905
0x0000010:1266 5359 0612 6753 5907 1268 53b3 006a
0x0000020:08bd 006c 5903 00b2 0080 c600 09b2 0080
0x0000030:a700 0c12 82b8 0084 59b3 0080 0053 5904
java.lang.reflect.InvocationTargetException
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:497)
位于sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:386)
位于sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:401)
原因:java.lang.RuntimeException:无法检测类java/util/UUID。
位于org.jacoco.agent.rt6l8m50.core.runtime.ModifiedSystemClassRuntime.createFor(ModifiedSystemClassRuntime.java:138)
位于org.jacoco.agent.rt6l8m50.core.runtime.ModifiedSystemClassRuntime.createFor(ModifiedSystemClassRuntime.java:99)
位于org.jacoco.agent.rt6l8M50.JacocoAgent.createRuntime(JacocoAgent.java:128)
位于org.jacoco.agent.rt6l8M50.JacocoAgent.init(JacocoAgent.java:74)
在org.jacoco.agent.rt6l8M50.JacocoAgent.premain(JacocoAgent.java:165)上
... 还有6个
原因:java.lang.NoSuchFieldException:$jacocoAccess
位于java.lang.Class.getField(Class.java:1703)
位于org.jacoco.agent.rt6l8m50.core.runtime.ModifiedSystemClassRuntime.createFor(ModifiedSystemClassRuntime.java:136)
... 10多
Java HotSpot(TM)64位服务器VM警告:忽略选项UseSplitVerifier;支持在8.0中被删除
线程“main”中的异常无法将标准输入写入:Gradle Test Executor 2。
java.io.IOException:正在关闭管道
位于java.io.FileOutputStream.writeBytes(本机方法)
在java.io.FileOutputStream.write(FileOutputStream.java:326)处
位于java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
位于java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140)
位于org.gradle.process.internal.streams.ExecOutputHandleRunner.run(ExecOutputHandleRunner.java:50)
位于org.gradle.internal.concurrent.DefaultExecutorFactory$StoppableExecutorImpl$1.run(DefaultExecutorFactory.java:64)
位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
运行(Thread.java:745)
java.lang.reflect.InvocationTargetException
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:497)
位于sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:386)
位于sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:401)
原因:java.lang.RuntimeException:无法检测类java/util/UUID。
位于org.jacoco.agent.rt6l8m50.core.runtime.ModifiedSystemClassRuntime.createFor(ModifiedSystemClassRuntime.java:138)
位于org.jacoco.agent.rt6l8m50.core.runtime.ModifiedSystemClassRuntime.createFor(ModifiedSystemClassRuntime.java:99)
位于org.jacoco.agent.rt6l8M50.JacocoAgent.createRuntime(JacocoAgent.java:128)
位于org.jacoco.agent.rt6l8M50.JacocoAgent.init(JacocoAgent.java:74)
在org.jacoco.agent.rt6l8M50.JacocoAgent.premain(JacocoAgent.java:165)上
... 还有6个

您能告诉我如何使用java8解决此问题吗?

您可能需要根据需要使用您的JaCoCo和/或ASM版本。这是一个众所周知的问题,可以追溯到2013年左右。转到maven搜索站点,查找最新版本,并将您的测试依赖项推送到最新的可用版本,看看是否可以修复它。

您是否使用与Java 8兼容的JaCoCo版本(或与JaCoCo兼容的Gradle版本)?添加了新的JaCoCo版本。(org.jacoco.agent-0.7.4.201502262128和org.jacoco.ant-0.7.4.201502262128)。现在它工作正常。这似乎是一个已知的问题。你可以在谷歌上搜索它。