如何将外部jar文件添加到Eclipse RCP应用程序?

6
我尝试将Apache VFS JAR文件添加为运行时依赖项。即使它抛出以下错误:
java.lang.ClassNotFoundException: org.apache.commons.vfs.VFS at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:489) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:405) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:393) at 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) 在file_explorer.View.setInput(View.java:295) 在file_explorer.View.initialize(View.java:130)
如何解决这个问题,谢谢。
4个回答

4

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


3
将外部Jar包包含到Eclipse RCP应用程序中的最佳方法是将其打包为插件,然后使用经典插件依赖项。只需创建一个仅包含您的Jar包的新插件。然后在清单编辑器的构建选项卡中,将您的Jar包添加到类路径(位于右下角)并在此相同的运行时选项卡中导出所有其包。还要确保在构建选项卡中检查您的jar是否已被选中。尽管如此,如果您只将其添加到类路径中,您应该能够在给定的插件源代码中使用该jar。因为您的其他一些插件可能有兴趣使用vfs jar,并且出于关注点分离的原因,我认为您应该将其包装在自己的插件中。

2
最简单的方法是在现有的OSGI bundle仓库中找到bundle。
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仓库包含Apache VFS捆绑包。

然后,您需要将该捆绑包添加到目标平台(或只需将其复制到“dropins”文件夹中)。

为了正确地将捆绑包安装到较新版本的Eclipse中,您应该使用现有的p2存储库,并从p2存储库将捆绑包安装到您的运行时平台。 有两种方法:您可以使用现有的存储库(例如Orbit p2存储库),也可以使用p2发布者创建自己的存储库,如https://docs.sonatype.org/display/TYCHO/How+to+make+existing+OSGi+bundles+consumable+by+Tycho所述。


1
Eclipse RCP是一个OSGi环境,它扩展了Java的依赖模型,因此您不能简单地使用一个jar文件并希望它能正常工作。要使用外部jar,您必须首先将其构建为插件,p2-maven-plugin可以帮助您,您可以按照自述文件操作。
准备好插件后,您应该安装插件并将其添加到MANIFEST.MF中。然后重新启动Eclipse使插件生效。
更简单的方法是,您无需安装插件,只需按照以下步骤操作(但需要构建jar):
1. 转到plugin.xml->运行时选项卡; 2. 在classpath部分单击添加,然后将插件添加到类路径; 3. 确保文本区域中有.路径,否则请新建

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接