換用Eclipse3.2有些日子了,從RC一直用到last release,以前用3.2RC版在6月份導出過RCP項目,沒什麼問題。現在8月,換了3.2 last release,用*.product檔案的導出功能導出RCP項目後,卻死活啟動不了。依賴項目檢查過了,和以往的版本也比對過了,雖然config.ini檔案有變化,我想那也是最版本自已的變動,不會有什麼大問題。異常日志如下:
! SESSION 2006 - 08 - 09 10 : 25 : 55.734 -----------------------------------------------
eclipse.buildId = unknown
java.version = 1.5 .0_05
java.vendor = Sun Microsystems Inc.
BootLoader constants: OS = win32, ARCH = x86, WS = win32, NL = zh_CN
Command - line arguments: - os win32 - ws win32 - arch x86
! ENTRY org.eclipse.core.runtime 2006 - 08 - 09 10 : 25 : 57.125
! MESSAGE 找不到産品 com.wxxr.management.admin.console.admin_console_product。
! ENTRY org.eclipse.osgi 4 0 2006 - 08 - 09 10 : 25 : 57.140
! MESSAGE Application error
! STACK 1
java.lang.RuntimeException: 找不到應用程式辨別。
at org.eclipse.core.internal.runtime.PlatformActivator$ 1 .run(PlatformActivator.java: 56 )
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java: 92 )
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java: 68 )
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java: 400 )
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java: 177 )
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: 39 )
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 25 )
at java.lang.reflect.Method.invoke(Method.java: 585 )
at org.eclipse.core.launcher.Main.invokeFramework(Main.java: 336 )
at org.eclipse.core.launcher.Main.basicRun(Main.java: 280 )
at org.eclipse.core.launcher.Main.run(Main.java: 977 )
at org.eclipse.core.launcher.Main.main(Main.java: 952 )
! ENTRY org.eclipse.osgi 2 0 2006 - 08 - 09 10 : 25 : 57.156
! MESSAGE One or more bundles are not resolved because the following root constraints are not resolved:
! SUBENTRY 1 org.eclipse.osgi 2 0 2006 - 08 - 09 10 : 25 : 57.156
! MESSAGE Bundle update@plugins / org.eclipse.gef_3. 2.0 .v20060626.jar was not resolved.
! SUBENTRY 2 org.eclipse.gef 2 0 2006 - 08 - 09 10 : 25 : 57.156
! MESSAGE Missing required bundle org.eclipse.draw2d_[ 3.2 . 0 , 4.0 . 0 ).
! MESSAGE The following is a complete list of bundles which are not resolved, see the prior log entry for the root cause if it exists:
! MESSAGE Bundle update@plugins / com.wxxr.management.admin.console_1. 0.0 .jar [ 6 ] was not resolved.
! SUBENTRY 2 com.wxxr.management.admin.console 2 0 2006 - 08 - 09 10 : 25 : 57.156
! MESSAGE Missing required bundle org.eclipse.gef_0. 0.0 .
! MESSAGE Bundle update@plugins / org.eclipse.gef_3. 2.0 .v20060626.jar [ 40 ] was not resolved.
下面是中文版的異常日志,英文版的如下:
! SESSION 2006 - 08 - 09 10 : 29 : 38.125 -----------------------------------------------
! ENTRY org.eclipse.core.runtime 2006 - 08 - 09 10 : 29 : 39.421
! MESSAGE Product com.wxxr.management.admin.console.admin_console_product could not be found.
! ENTRY org.eclipse.osgi 4 0 2006 - 08 - 09 10 : 29 : 39.421
java.lang.RuntimeException: No application id has been found.
! ENTRY org.eclipse.osgi 2 0 2006 - 08 - 09 10 : 29 : 39.437
! SUBENTRY 1 org.eclipse.osgi 2 0 2006 - 08 - 09 10 : 29 : 39.437
! SUBENTRY 2 org.eclipse.gef 2 0 2006 - 08 - 09 10 : 29 : 39.437
! MESSAGE Bundle update@plugins / com.wxxr.management.admin.console_1. 0.0 .jar [ 5 ] was not resolved.
! SUBENTRY 2 com.wxxr.management.admin.console 2 0 2006 - 08 - 09 10 : 29 : 39.437
! MESSAGE Bundle update@plugins / org.eclipse.gef_3. 2.0 .v20060626.jar [ 25 ] was not resolved.
最後耗了一個下午,Google了很多資料,還是不行。于是去Eclipse.org當了3.2的一個8月份更新的版本,檔案名eclipse-SDK-M20060802-0800-win32.zip。用這個版本導出RCP項目一點問題也沒有。
我比對了3.2M20060802版和3.2正式版的不同。發現config.ini、.eclipseproduct都一樣。把後者導出的項目jar包換在前者中,也能正常啟動。而且我檢查了plugin目錄下的檔案,兩者種類數目都相同,是以依賴的插件也對。唯一不同的就是plugin目錄下依賴插件的版本不同。我想可能是後者導出的這些依賴插件的内部存在有BUG吧。
另外,3.2版的語言包在3.2M20060802中也能使用。