我在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