1、如果你想在RCP應用程式裡使用Eclipse提供的Resource Navigator(它是IDE plugin的一部分),要在WorkbenchAdvisor裡加入如下代碼,否則在Navigator裡建立的項目和檔案名都會變為空:
WorkbenchAdapterBuilder.registerAdapters();
一 般加在preWindowOpen()方法裡就可以了,否則可能需要手動refresh才能看到已有的項目。當然,你還要在plugin dependencies裡加上org.eclipse.ui.ide和org.eclipse.ui.views,是以你的RCP程式會變得更大,這就 是代價,目前這個ResourceNavigator不被鼓勵用在RCP程式裡,以後版本的Eclipse可能會提供更合适的插件。
2、若你在運作RCP Application時遇到以下異常:
java.lang.NoSuchMethodException: com.your.YourPlugin.<init>(org.eclipse.core.runtime.IPluginDescriptor)
at java.lang.Class.getConstructor0(Unknown Source)
at java.lang.Class.getConstructor(Unknown Source)
at org.eclipse.core.internal.plugins.PluginDescriptor.internalDoPluginActivation(PluginDescriptor.java:403)
at org.eclipse.core.internal.plugins.PluginDescriptor.doPluginActivation(PluginDescriptor.java:359)
或是:
org.eclipse.core.runtime.CoreException[1]: java.lang.ClassNotFoundException: com.your.YourApplication
at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:404)
at org.eclipse.osgi.framework.adaptor.core.AbstractClassLoader.loadClass(AbstractClassLoader.java:93)
at java.lang.ClassLoader.loadClass(Unknown Source)
at org.eclipse.osgi.framework.internal.core.BundleLoader.loadClass(BundleLoader.java:307)
可以檢查一下你是否在plugin dependencies裡增加了org.eclipse.core.runtime.compatibility,我不太清楚這個plugin是做什麼用的,但隻要有它在我的RCP Application就無法啟動。
最後,如果希望在Eclipse的console裡顯示log而不是直接寫入到檔案中,可以在運作時加上-consoleLog參數。