Ich versuche, JAR-Datei (aus Spacewalk-Projekt) zu instrumentieren, damit ich Code-Coverage von mir messen kann Tests, aber es versagt:cobertura-instrument.sh versäumt es, JAR-Datei mit java.lang.NoClassDefFoundError zu instrumentieren: net.sourceforge.cobertura.instrument.InstrumentMain
# /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.
ich versucht habe, eine zufällige Klasse zu schaffen (im Idealzustand mag ich Instrument, um alle von ihnen) aus diesem Glas als gut, aber mit dem gleichen Ergebnis:
# 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
Ich bin mir ziemlich sicher, dass ich gerade etwas vermisse, was es mir zu sagen versucht.
Ich verwende cobertura-2.1.1 von Sourceforge heruntergeladen und in /opt
extrahiert, auf Red Hat Enterprise Linux 6.