Idea ——使用Junit+Coverage(覆盖率)报错

摘要

之前用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" 

解决

  1. 先看一下你自己idea.exe 的位置,这是我的E:\IntelliJ IDEA\IntelliJ IDEA 2016.1.1\bin 
    Idea ——使用Junit+Coverage(覆盖率)报错_第1张图片
  2. 找到idea.exe.vmoptions这个文件 
    Idea ——使用Junit+Coverage(覆盖率)报错_第2张图片
  3. 记事本打开最后加入一行-Djava.io.tmpdir=F:\Temp ,这里要注意 F:\Temp 是随意写的目录,但一定要保证它存在。 
    Idea ——使用Junit+Coverage(覆盖率)报错_第3张图片
  4. 重新打卡IDEA 在运行就可以啦。 
  5. 有的idea工具用的idea64.exe,所以修改的文件是idea64.exe.vmoptions

Idea ——使用Junit+Coverage(覆盖率)报错_第4张图片

参考:
https://blog.csdn.net/Demon2015/article/details/76218029

你可能感兴趣的:(idea)