3

I have developed an RCP plug-in (not standalone), and a Java Project with library code that the plug-in needs to call.

I have configured the Java Project in the same workspace. The plug-in has a project dependency on the Java Project.

The code compiles (the plug-in does some stuff with the Java Project / library code).

When I run the plug-in, I get a ClassNotFoundException:

java.lang.ClassNotFoundException: com.mycode.ArgSet
    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:494)

Anyone know how to configure the plug-in properly?

geejay
  • 5,440
  • 8
  • 50
  • 60

2 Answers2

4

Convert your library project to a plug-in project (right-click -> Configure -> Convert to Plug-in Project) and add it to the dependencies of your plug-in project (manifest editor, Dependencies tab).

Fabian Steeg
  • 44,988
  • 7
  • 85
  • 112
  • thanks again Fabian! Do you know the reason for this? Is it to support versioning and so on? – geejay Feb 02 '10 at 15:52
  • Yes, support for different versions of a bundle is one reason that every bundle has its own class loader. You can find details about these things here: http://www.eclipsezone.com/articles/eclipse-vms/ – Fabian Steeg Feb 02 '10 at 15:58
  • Does the new plug-in project need a Product Configuration as well? Im getting java.lang.RuntimeException: No application id has been found. – geejay Feb 02 '10 at 16:09
0

You can also generate a JAR of your libray Project and add this jar to your plugin-project. That's the way we do it (but thats not that automatically, you have to export manualy every time you change the library-project.

The other bad with this jar-export is: when using another libraries (i.E. AXIS2 for Webservice,...) this Libraries must have also been added to the plugin project.

Fungi
  • 1