jMockit 运行单元测试时出现 java.lang.ExceptionInInitializerError 异常的解决办法,,jMockit 执行测试
分享于 点击 26871 次 点评:203
jMockit 运行单元测试时出现 java.lang.ExceptionInInitializerError 异常的解决办法,,jMockit 执行测试
jMockit 执行测试时出现 java.lang.ExceptionInInitializerError 异常的解决办法
jMockit执行时出现了错误java.lang.ExceptionInInitializerError :
java.lang.ExceptionInInitializerErrorat com.panguso.radar.service.test.AlarmSettingsServiceTest.beforeClass(AlarmSettingsServiceTest.java:46)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)at java.lang.reflect.Method.invoke(Unknown Source)at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:27)at org.junit.runners.ParentRunner.run(ParentRunner.java:300)at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)Caused by: java.lang.IllegalStateException: Native library for Attach API not available in this JREat mockit.internal.startup.JDK6AgentLoader.getVirtualMachineImplementationFromEmbeddedOnes(JDK6AgentLoader.java:95)at mockit.internal.startup.JDK6AgentLoader.loadAgent(JDK6AgentLoader.java:54)at mockit.internal.startup.AgentInitialization.initializeAccordingToJDKVersion(AgentInitialization.java:21)at mockit.internal.startup.Startup.verifyInitialization(Startup.java:122)at mockit.Mockit.<clinit>(Mockit.java:55)... 16 moreCaused by: java.lang.UnsatisfiedLinkError: no attach in java.library.pathat java.lang.ClassLoader.loadLibrary(Unknown Source)at java.lang.Runtime.loadLibrary0(Unknown Source)at java.lang.System.loadLibrary(Unknown Source)at sun.tools.attach.WindowsVirtualMachine.<clinit>(WindowsVirtualMachine.java:185)at mockit.internal.startup.JDK6AgentLoader.getVirtualMachineImplementationFromEmbeddedOnes(JDK6AgentLoader.java:73)... 20 more
这个问题有可能是因为classpath配置不正确导致的,首先要看windows的环境变量中是否有classpath,如果没有要加上classpath,并确保classpath中有%JAVA_HOME%\lib\tools.jar;
如果在classpath中添加了tools.jar依然不能解决问题,需要看eclipse的jdk环境配置是否有问题,打开运行配置,选择JRE选项卡,确保这里使用的JRE是系统JAVA_HOME指向的JRE。
用户点评