Eclipse RCP:java.lang.ClassNotFoundException运行时

Eclipse RCP:java.lang.ClassNotFoundException运行时,java,eclipse,jar,eclipse-plugin,eclipse-rcp,Java,Eclipse,Jar,Eclipse Plugin,Eclipse Rcp,我的一个插件使用一个库(jar文件) 我在插件中创建了一个名为lib的文件夹,并将jar文件放入其中 我通过添加带有“addjars..”的jar文件来配置构建路径 我在插件中使用jar文件的类,它编译得很好 我启动RCP并得到一个关于jar文件中类的ClassNotFoundException 我错过了什么?欢迎来到OSGi的精彩世界D 您有两个选择: 将JAR作为OSGi包重新打包 您可以按照OSGi的方式,将您的JAR重新打包成一个OSGi包。这在OSGi的意义上是干净的,并且是推荐的,因

我的一个插件使用一个库(jar文件)

  • 我在插件中创建了一个名为lib的文件夹,并将jar文件放入其中
  • 我通过添加带有“addjars..”的jar文件来配置构建路径
  • 我在插件中使用jar文件的类,它编译得很好
  • 我启动RCP并得到一个关于jar文件中类的ClassNotFoundException

  • 我错过了什么?

    欢迎来到OSGi的精彩世界D

    您有两个选择:

    将JAR作为OSGi包重新打包 您可以按照OSGi的方式,将您的JAR重新打包成一个OSGi包。这在OSGi的意义上是干净的,并且是推荐的,因为所有代码都应该打包在OSGi包中(在您的例子中,这些包被称为Eclipse插件)。然而,这意味着额外的工作,我个人不喜欢

    使用bundle类路径 将JAR文件放入捆绑包的根目录(或名为
    lib
    )中,并将
    捆绑包类路径
    条目添加到清单中:

    Bundle-ClassPath: .,lib/library.jar
    

    JAR包含src文件还是编译的.class文件?它包含一个包含.class文件的包和一个清单文件的META-INF文件夹。