我们已经安装了应用程序的版本(在生成应用程序包之前没有包含任何工具或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
答案 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