【发布时间】:2013-05-03 17:09:19
【问题描述】:
我制作了一个作用于 JavaProject 的 eclipse 插件。它需要访问项目类的字节码中包含的信息,因此,我使用了 URLClassLoader(告诉它这些类位于项目的“bin”文件夹中)来获取对类的引用并检索所有我需要的信息。不幸的是,当我调用 loadClass("a certain class in JavaProject") 方法时,我得到了这种类型的错误:
org.eclipse.e4.core.di.InjectionException: java.lang.NoClassDefFoundError: javassist/bytecode/BadBytecode
我发现此类错误是由于类加载器不“知道”添加到 JavaProject BuildPath 的外部库:JavaProject 的类使用这些库的类
在前面的例子中使用了库 javassist 的 BadBytecode 类 在这个JavaProject类的声明中
public static void main(String[] args) throws NotFoundException, BadBytecode, IOException, CannotCompileException{
那么如何使我的插件对导入到 java 项目中的外部库的类可见?
【问题讨论】:
标签: java eclipse plugins reflection classloader