引起:java.lang.ClassNotFoundException:net.sourceforge.cobertura.coveragedata.HasBeenInstrumented

时间:2014-06-23 12:02:10

标签: java cobertura

我们已经安装了应用程序的版本(在生成应用程序包之前没有包含任何工具或cobertura jar)。

安装完成后,我们使用cobertura对所有jar进行了检测,并在java classpath中包含了cobertura jar文件。但在启动应用程序时,它会给出以下错误。

任何输入都会有所帮助,谢谢。

  

Java版本" 1.7.0_25"   
cobertura ver 1.9.4.1

Exception in thread "main" java.lang.NoClassDefFoundError: net/sourceforge/cobertura/coveragedata/HasBeenInstrumented
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$100(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
Caused by: java.lang.ClassNotFoundException: net.sourceforge.cobertura.coveragedata.HasBeenInstrumented
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        ... 13 more

2 个答案:

答案 0 :(得分:2)

您应该使用-Xbootclasspath将cobetura.jar添加到Bootstrap类。更多信息:https://docs.oracle.com/javase/8/docs/technotes/tools/findingclasses.html 这需要完成以加载cobetura类,这是加载应用类所需的。

答案 1 :(得分:0)

我已经能够通过运行延迟的包目标来摆脱这个问题,因为它重新编译并重新打包de代码而没有Cobertura。

我使用的目标是:

clean site package