prabakaran ramu
prabakaran ramu

Reputation: 71

How can I add the external jar to the eclipse rcp application?

I tried to add the apache vfs jar file as the runtime dependency. Even though it throws the below error:

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) at file_explorer.View.setInput(View.java:295) at file_explorer.View.initialize(View.java:130)

How can i resolve this, thanks in advance.

Upvotes: 6

Views: 11633

Answers (4)

Dave Pateral
Dave Pateral

Reputation: 1465

Eclipse RCP is an OSGi environment which extends the Java dependency model, so you can't simply take a jar file and hope it works. To use an external jar, you have to build it to a plugin first, which p2-maven-plugin can help, you can follow the readme document.

With the plugin ready, you should install the plugin and add it to MANIFEST.MF. Then restart Eclipse to make the plugin work.

A more easily way, you needn't install the plugin, just follow(but build the jar):

  1. go to plugin.xml -> Runtime tab;
  2. click Add at the classpath section, then add the plugin to classpath;
  3. make sure there is . path in the text area, otherwise New it.

Upvotes: 1

Jaknap Ramuk
Jaknap Ramuk

Reputation: 51

If you are looking for adding the required jars to your project classpath.Add the required files to lib directory in the project structure.Then from project click the 'run time' tab of plugin.xml and add the required jars from the lib directory to the project classpath.

Upvotes: 4

ILX
ILX

Reputation: 336

The easiest way is to find bundle in an existing OSGI bundle repository.

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 contains apache VFS bundle

Then you need to add the bundle to the target platform (or just copy it to the dropins folder)

In order to properly install bundle into a newer version of eclipse you should use an existing p2 repository and install bundle from p2 repository into your runtime platform. There are two ways: you could use existing one (like orbit p2 repo), or you could create your own using p2 publisher as described at https://docs.sonatype.org/display/TYCHO/How+to+make+existing+OSGi+bundles+consumable+by+Tycho

Upvotes: 2

Manuel Selva
Manuel Selva

Reputation: 19050

The best way to include external Jar in Eclipse RCP application is to package it as a plugin and then use classic plugin dependency.

Just create a new plugin containing only your Jar. Then in the build tab of the manifest editor, add your jar to the classpath (at the bottom right) and export all its packages in this same runtime tab. Also be sure to check that you jar is checked in the Build tab.

Nevertheless you should be able to use the jar in a Given plugin source code if you only add it to the classpath as I mentioned previously.

Because some other of your plugins may be interested in using the vfs jar and for separtion of concerns matter I think you should wrap it in its own plugin

Upvotes: 3

Related Questions