作为 Android 系统研究和测试的一部分,我目前正在尝试覆盖 SDK 中的 Android 库(特别是 android.database.sqlite)。我正在关注本使用 Emma 的指南,希望将 Emma 用作覆盖工具。但是,仅仅遵循本指南并运行示例程序似乎并不能很好地工作。我可以跑
java -cp out Main
很好,但在我尝试跑步的那一刻
java emmarun -cp out Main
它给了我以下错误:
Exception in thread "main" java.lang.NoClassDefFoundError: emmarun
Caused by: java.lang.ClassNotFoundException: emmarun
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: emmarun. Program will exit.
也许这只是我对艾玛问题缺乏经验,但谁能向我解释我应该如何做到这一点?顺便说一下,我有emma.jar文件当前保存在/usr/lib/jvm/java-1.6.0-sun-1.6.0.33.x86_64/jre/lib/(指南说放在jre/lib /ext/,但这不起作用,所以我工作的支持将它放在 lib/ 中)。