摘要
之前用idea写junit 查看代码覆盖率的时候遇到的问题.
java.lang.reflect.InvocationTargetException…FATAL ERROR in native method: processing of -javaagent failed
看完之后一脸蒙蔽。。。。好在问题解决了,记录一下解决方法。
遇到问题详细
stack如下
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:498)
at sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:386)
at sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:401)
Caused by: 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:498)
at com.intellij.rt.coverage.main.CoveragePremain.premain(CoveragePremain.java:66)
... 6 more
Caused by: java.lang.ArrayIndexOutOfBoundsException: 1
at com.intellij.rt.coverage.instrumentation.Instrumentator.premain(Instrumentator.java:64)
... 11 more
FATAL ERROR in native method: processing of -javaagent failed
Process finished with exit code 1
Exception in thread "main"
解决
- 先看一下你自己idea.exe 的位置,这是我的
E:\IntelliJ IDEA\IntelliJ IDEA 2016.1.1\bin
- 找到
idea.exe.vmoptions
这个文件 - 记事本打开最后加入一行
-Djava.io.tmpdir=F:\Temp
,这里要注意F:\Temp
是随意写的目录,但一定要保证它存在。 - 重新打卡IDEA 在运行就可以啦。
- 有的idea工具用的idea64.exe,所以修改的文件是idea64.exe.vmoptions
参考:
https://blog.csdn.net/Demon2015/article/details/76218029