【发布时间】:2016-07-28 10:32:07
【问题描述】:
我正在尝试检测 jar 文件(来自 Spacewalk 项目),以便测量我的测试的代码覆盖率,但它失败了:
# /opt/cobertura-2.1.1/cobertura-instrument.sh --datafile /tmp/out /usr/share/rhn/lib/rhn.jar
Exception in thread "main" java.lang.NoClassDefFoundError: net.sourceforge.cobertura.instrument.InstrumentMain
Caused by: java.lang.ClassNotFoundException: net.sourceforge.cobertura.instrument.InstrumentMain
at java.net.URLClassLoader.findClass(URLClassLoader.java:432)
at java.lang.ClassLoader.loadClass(ClassLoader.java:676)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:358)
at java.lang.ClassLoader.loadClass(ClassLoader.java:642)
Could not find the main class: net.sourceforge.cobertura.instrument.InstrumentMain. Program will exit.
我也尝试从该 jar 中提供一个随机类(在理想状态下我想检测所有这些类),但结果相同:
# jar tf rhn.jar | tail
org/cobbler/CobblerConnection.class
[...]
# /opt/cobertura-2.1.1/cobertura-instrument.sh --datafile /tmp/out /usr/share/rhn/lib/rhn.jar org.cobbler.CobblerConnection
我很确定我只是错过了它试图告诉我的东西。
我正在使用从 SourceForge 下载并解压缩到 /opt 中的 cobertura-2.1.1,在 Red Hat Enterprise Linux 6 上运行。
【问题讨论】:
标签: java code-coverage cobertura