Aleksandr Korotkov
Aleksandr Korotkov

Reputation: 92

Eclipse. ClassNotFoundException but I do know that class exists

I added myLibrary.jar in project BuildPath and try to call static method from myLibrary.jar myClass but have exception:

Caused by: java.lang.NoClassDefFoundError: application/Application
    at rcp.handlers.RunGenerationHandler.execute(RunGenerationHandler.java:29)
    at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:294)
    at org.eclipse.ui.internal.handlers.E4HandlerProxy.execute(E4HandlerProxy.java:90)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:55)
    ... 38 more
Caused by: java.lang.ClassNotFoundException: application.Application cannot be found by rcp_1.0.0.qualifier
    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:432)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:345)
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:337)
    at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:160)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 46 more

I'm sure that class exists in Library. I try to rebuild myLibrary.jar and add in project again but problem still stays.
Below is the code where I try to call static method from my class:

import application.Application;
...

if (generationString != null){
    Application.main(generationString);
}

Application - class in myLibrary.jar

Screenshot with package tree

ldl = myLibrary

UPDATE
I'm really such a slowpoke=(
In RCP applications libraries attaching in MANIFEST.MF
Example:

Bundle-ClassPath: .,/directory/myLibrary.jar

Upvotes: 2

Views: 5000

Answers (1)

jps90
jps90

Reputation: 72

If your Library is also a RCP-Plugin you have to add it in the dependencies of your plugin.xml in your project. In the Library plugin.xml you have to export the package where the class is in.

Upvotes: 2

Related Questions