1
另一個類我有兩個項目:一個分析器和一個基本的應用程序(使用JUnit測試)裝載用Javassist
探查器使用了Javassist儀器的基本應用。
當分析器位於基本應用程序中時,它工作正常。 當探查器在基本應用程序之外時,我必須將基本應用程序jar文件導入Eclipse上的構建路徑,以便能夠檢測我的應用程序。
我想對我的命令行基本的應用程序運行我的探查爲EMMA做:罐子profiler.jar application.jar運行
但我不
的java不知道如何告訴我的分析器,好的,用這個罐子來測試。
這裏是我的探查主要代碼:
public static void main(String[] args) throws Exception { Loader loader = new Loader(); loader.addTranslator(ClassPool.getDefault(), new Profiler()); try { loader.run("com.application.bookstore.test.Test", null); } catch (Throwable e) { e.printStackTrace(); } }
我想這樣做:
final String arg = args[0]; final String[] commandArgs = new String[args.length - 1]; System.arraycopy(args, 1, commandArgs, 0, commandArgs.length-1); loader.run(arg, commandArgs);
但是當我運行它,我得到:
[[email protected] build]$ java -jar profiler.jar bookstore.jar java.lang.ClassNotFoundException: bookstore.jar at java.net.URLClassLoader$1.run(URLClassLoader.java:217) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:205) at java.lang.ClassLoader.loadClass(ClassLoader.java:321) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) at java.lang.ClassLoader.loadClass(ClassLoader.java:266) at javassist.Loader.delegateToParent(Loader.java:429) at javassist.Loader.loadClass(Loader.java:315) at java.lang.ClassLoader.loadClass(ClassLoader.java:266) at javassist.Loader.run(Loader.java:289) at com.modeln.Profiler.main(Profiler.java:93)
所以,我想直接運行到我的Main類目錄中:
[[email protected] test]$ ls profiler.jar Test.class [[email protected] test]$ java -jar profiler.jar Test java.lang.NoClassDefFoundError: Test (wrong name: com/application/bookstore/test/Test) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:634) at java.lang.ClassLoader.defineClass(ClassLoader.java:480) at javassist.Loader.findClass(Loader.java:380) at javassist.Loader.loadClass(Loader.java:312) at java.lang.ClassLoader.loadClass(ClassLoader.java:266) at javassist.Loader.run(Loader.java:289) at com.modeln.Profiler.main(Profiler.java:93)
所以你有任何想法如何運行我的分析器外部jar項目?非常感謝!