蚀。 ClassNotFoundException 但我知道 class 存在
Eclipse. ClassNotFoundException but I do know that class exists
我在项目 BuildPath 中添加了 myLibrary.jar 并尝试从 myLibrary.jar myClass 调用静态方法但有异常:
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
我确定 class 存在于图书馆中。
我尝试重建 myLibrary.jar 并再次添加项目,但问题仍然存在。
下面是我尝试从 class:
调用静态方法的代码
import application.Application;
...
if (generationString != null){
Application.main(generationString);
}
申请 - class 在 myLibrary.jar
ldl = myLibrary
更新
我真的很慢=(
在 MANIFEST.MF
中附加的 RCP 应用程序库中
示例:
Bundle-ClassPath: .,/directory/myLibrary.jar
如果您的库也是一个 RCP 插件,您必须将其添加到项目中 plugin.xml 的依赖项中。
在库 plugin.xml 中,您必须导出 class 所在的包。
我在项目 BuildPath 中添加了 myLibrary.jar 并尝试从 myLibrary.jar myClass 调用静态方法但有异常:
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
我确定 class 存在于图书馆中。
我尝试重建 myLibrary.jar 并再次添加项目,但问题仍然存在。
下面是我尝试从 class:
import application.Application;
...
if (generationString != null){
Application.main(generationString);
}
申请 - class 在 myLibrary.jar
ldl = myLibrary
更新
我真的很慢=(
在 MANIFEST.MF
中附加的 RCP 应用程序库中
示例:
Bundle-ClassPath: .,/directory/myLibrary.jar
如果您的库也是一个 RCP 插件,您必须将其添加到项目中 plugin.xml 的依赖项中。 在库 plugin.xml 中,您必须导出 class 所在的包。