2014-09-30 87 views
0

我在eclispe編輯器中突然出現這個錯誤它以前工作。我正在使用Mac OSx enter image description here在eclipse編輯器中得到這個錯誤

我之前沒有那樣做。我正在使用工作正常的螞蟻建設項目。我正在使用Eclipse 4.3.2。它是特定於MAC OS?我也是cobertura來生成報告。另外,當我運行一個常規測試案例我得到這

java.lang.NoClassDefFoundError: net/sourceforge/cobertura/coveragedata/HasBeenInstrumented 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:800) 
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) 
    at java.net.URLClassLoader.access$100(URLClassLoader.java:71) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358) 
    at java.lang.Class.getDeclaredFields0(Native Method) 
    at java.lang.Class.privateGetDeclaredFields(Class.java:2436) 
    at java.lang.Class.getDeclaredFields(Class.java:1806) 
    at org.spockframework.runtime.SpecInfoBuilder.buildFields(SpecInfoBuilder.java:86) 
    at org.spockframework.runtime.SpecInfoBuilder.doBuild(SpecInfoBuilder.java:57) 
    at org.spockframework.runtime.SpecInfoBuilder.build(SpecInfoBuilder.java:42) 
    at org.spockframework.runtime.Sputnik.getSpec(Sputnik.java:78) 
    at org.spockframework.runtime.Sputnik.runExtensionsIfNecessary(Sputnik.java:86) 
    at org.spockframework.runtime.Sputnik.getDescription(Sputnik.java:55) 
    at org.junit.runner.Runner.testCount(Runner.java:41) 
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestClassReference.countTestCases(JUnit4TestClassReference.java:30) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.countTests(RemoteTestRunner.java:487) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:455) 
    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.ClassNotFoundException: net.sourceforge.cobertura.coveragedata.HasBeenInstrumented 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358) 
    ... 28 more 

在此先感謝您的幫助。

+0

什麼是您的Java版本? – luboskrnac 2014-09-30 10:35:04

+0

和Cobertura版本 – luboskrnac 2014-09-30 10:41:36

+0

java版本1.7.0_65 cobertura-1.9.4.1 – user1403505 2014-09-30 10:53:00

回答

0

一年前Cobertura幾乎死去的項目。它可以處理的最新Java版本是JDK6。所以你的問題可能是由更新版本的Java引起的。

有一些發展最近做了,但我的擔心是:

因此,我們切換到不同的覆蓋工具稱爲JaCoCo。它可以處理Java7的覆蓋(到目前爲止還不確定Java8)。如果你想在Eclipse中使用漂亮的插件,請轉至幫助 - > Eclipse Marketplace ... - >在查找欄中輸入「EclEmma」 - >轉到。這個插件正在使用JaCoCo。

編輯

發佈您的Java和的Cobertura版本後,我的犯罪嫌疑人成爲現實。您的Cobertura版本僅適用於Java6。您可以以某種方式更新Cobertura版本,或切換到上述建議的替代方案。

+0

感謝您的洞察力。它一直工作到昨天,我不確定是否有任何來自Mac OS的java更新導致了這種情況,並且我在網上找不到答案 – user1403505 2014-09-30 10:57:11

+0

因此,這可能是偶然發生的。如果你不相信我,請看看這裏:http://stackoverflow.com/questions/8151470/cobertura-java-7-support – luboskrnac 2014-09-30 11:00:20