我尝试将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)
我如何解决这个问题,提前谢谢。
答案 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):
plugin.xml
- > Runtime
标签; Add
部分的classpath
,然后将插件添加到classpath; .
路径,否则New
。