我在eclipse juno中构建了一个eclipse特性项目,当我从IDE启动程序时,一切正常,控制台中没有错误。如何在eclipse rcp build中解决ClassNotFoundException?
当我导出产品时,它运行但它不显示我在Application.e4xmi文件(仅灰色背景)中创建的零件的内容。当我在导出的文件夹查看配置文件夹没有与下面的错误日志文件:
!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无法从bundle'2'加载类'be.yt.diepvriezer.ui.handlers.ExitHandler' !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。在在java.lang.ClassLoader.loadClass中使用org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107) (ClassLoader.java: 247) .....
对于我在应用程序模型中创建的每个处理程序和部分都是如此。
我检查了build.properties和manifest文件,一切都在那里。
有人可以指出我正确的方向如何解决这个问题吗?
谢谢你的回答。检查插件文件夹:它包含正确的插件的我解压缩的jar文件和类是在里面。 Application.e4xmi文件位于包含处理程序代码的插件中。 – 2012-07-20 04:11:15
再次,没有解决方案,只是猜测接下来要检查什么。确实让人费解。当您使用eclipse IDE进行RCP开发时,它包含源代码。所以你可以打开'BundleLoader'类(Menu Navigate,Open Type,...),在'findClassInternal'方法中设置一个断点,或许是'name.equals(“be ..... ExitHandler” )'并试图找出它为什么失败。例如'BundleLoader.bundle'应该指向包含ExitHandler的bundle。也许在调试器中,你会得到一些暗示,为什么它找不到类:寻找错误的包? – Kay 2012-07-21 19:33:46
问题的关键在于,您必须将IDE的调试器附加到导出的产品上,因为在IDE中它似乎都可以正常工作。 – Kay 2012-07-21 19:40:01