【发布时间】:2019-11-07 13:57:12
【问题描述】:
我尝试在某些所需类的每个方法中使用 javassist 注入方法调用语句。 该语句对应于 java-agent jar 中的一个类。例如,如果我的代理有像 a.b.HelperClass 这样的类,我正在注入 a.b.HelperClass.call();在每个类的开头使用 javassist。
我尝试使用 Spring Boot Web 应用程序,代理工作正常,但使用 RCP 应用程序时它正在抛出
java.lang.ClassNotFoundException: a.b.HelperClass 在 org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:506) 在 org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:422) 在 org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:410) 在 org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:357)
我是否需要使用 eclipse 类加载器来加载位于 agent-jar 中的类? 顺便说一句,我通过调用 agent-main 方法而不是 premain 进行检测。
【问题讨论】:
标签: java classloader javassist javaagents bytecode-manipulation