Search code examples
eclipse-juno

How do I solve ClassNotFoundException in a eclipse rcp build?


I have build an eclipse feature project in eclipse juno and when I launch the program from the IDE everything is fine, no errors in the console.

When I export the product it runs but it does not show the content of the parts that I created in the Application.e4xmi file (only a grey background). When I check the configuration folder in the exported folder there is a log file with following errors:

!ENTRY org.eclipse.e4.ui.workbench 4 0 2012-07-19 19:22:13.859
MESSAGE Unable to load class 'be.yt.diepvriezer.ui.handlers.ExitHandler' from bundle '2'

!ENTRY org.eclipse.e4.ui.workbench 4 0 2012-07-19 19:22:13.859 !MESSAGE Unable to load class 'be.yt.diepvriezer.ui.handlers.ExitHandler' from bundle '2' !STACK 0 java.lang.ClassNotFoundException: be.yt.diepvriezer.ui.handlers.ExitHandler at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:501) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:421) at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:412) at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) .....

And so on for every handler and part that I created in the application model.

I checked the build.properties and manifest files and everything is there.

Can somebody point me in the right direction how to solve this problem please ?


Solution

  • No solution, just things to check:

    When you look at the plugins/ subdirectory of the exported product, does it contain the plugin for your be.yt.diepvriezer.ui.handlers.ExitHandler? If not, that plugin needs to be added to the product. When you launch an RCP product from within the IDE, all plugins in the workspace are usually included, but when you export a product, you really need to list all plugins that you really want to include in the *.product file (directly or via *.features)

    When you un-zip that plugin jar file, is the ...ExitHandler class really in there? If not, something failed in the product export.

    Is the Application.e4xmi that refers to your ..ExitHandler in that same plugin as the code? If not, then the code within the 'other' plugin that provides the ..ExitHandler is not accessible by the class loader of the plugin that contains the Application.e4xmi.