如何将外部jar添加到eclipse rcp应用程序中?

时间:2009-08-04 13:06:20

标签: eclipse eclipse-rcp

我尝试将apache vfs jar文件添加为运行时依赖项。即使它抛出以下错误:

java.lang.ClassNotFoundException:org.apache.commons.vfs.VFS     在org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:489)     在org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:405)     在org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:393)     在org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:105)     at java.lang.ClassLoader.loadClass(ClassLoader.java:251)     at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)     at file_explorer.View.setInput(View.java:295)     在file_explorer.View.initialize(View.java:130)

我如何解决这个问题,提前谢谢。

4 个答案:

答案 0 :(得分:3)

在Eclipse RCP应用程序中包含外部Jar的最佳方法是将其打包为插件,然后使用经典的插件依赖。

只需创建一个仅包含Jar的新插件。然后在清单编辑器的build选项卡中,将jar添加到类路径(右下角)并在同一运行时选项卡中导出其所有包。另外一定要检查在Build选项卡中是否检查了jar。

然而,如果你只是像我之前提到的那样将它添加到类路径中,你应该能够在Given插件源代码中使用jar。

因为你的其他一些插件可能对使用vfs jar感兴趣并且关注部分问题,我认为你应该将它包装在自己的插件中

答案 1 :(得分:2)

最简单的方法是在现有的OSGI包存储库中查找包。

http://bundles.osgi.org/Main/Repository
http://www.springsource.com/repository/app/
http://www.eclipse.org/orbit/
http://www.knopflerfish.org/repo/index.html

springsource repo包含apache VFS bundle

然后您需要将捆绑包添加到目标平台(或者只是将其复制到dropins文件夹)

为了将bundle正确安装到更新版本的eclipse中,您应该使用现有的p2存储库并将p2存储库中的bundle安装到运行时平台中。有两种方法:您可以使用现有的(如轨道p2 repo),或者您可以使用p2发布者创建自己的方式,如https://docs.sonatype.org/display/TYCHO/How+to+make+existing+OSGi+bundles+consumable+by+Tycho所述

答案 2 :(得分:2)

如果您正在寻找将所需的jar添加到项目类路径中。将所需的文件添加到项目结构中的lib目录。然后从项目中单击plugin.xml的“运行时”选项卡,并从中添加所需的jar。 lib目录到项目类路径。

答案 3 :(得分:1)

Eclipse RCP是一个OSGi环境,它扩展了Java依赖模型,因此您不能简单地使用jar文件并希望它可以工作。要使用外部jar,您必须先将其构建为插件,p2-maven-plugin可以提供帮助,您可以按照自述文件进行操作。

准备好插件后,您应该安装插件并将其添加到MANIFEST.MF。然后重新启动Eclipse以使插件工作。

更简单的方法是,您无需安装插件,只需按照(但构建jar):

  1. 转到plugin.xml - > Runtime标签;
  2. 点击Add部分的classpath,然后将插件添加到classpath;
  3. 确保文本区域中有.路径,否则New