前兩天更新MyEclipse的SVN外掛程式的時候提示可以從8.0更新到8.5,於是很Happy地點了更新。
當時也準備關閉才更新的,也沒注意是否更新成功,今天再次啟動,提示Message並無法啟動......@_@
還好,無法啟動有log看:
!SESSION 2010-03-29 00:39:45.734 -----------------------------------------------<br />eclipse.buildId=unknown<br />java.version=1.6.0_13<br />java.vendor=Sun Microsystems Inc.<br />BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=zh_CN<br />Command-line arguments: -os win32 -ws win32 -arch x86</p><p>!ENTRY org.eclipse.equinox.app 0 0 2010-03-29 00:40:23.281<br />!MESSAGE Product com.genuitec.myeclipse.product8.ide could not be found.</p><p>!ENTRY org.eclipse.equinox.p2.repository 4 0 2010-03-29 00:40:24.250<br />!MESSAGE ProvisioningEventBus could not be obtained. Metadata caches may not be cleaned up properly.</p><p>!ENTRY org.eclipse.osgi 4 0 2010-03-29 00:40:31.421<br />!MESSAGE Application error<br />!STACK 1<br />java.lang.RuntimeException: No application id has been found.<br />at org.eclipse.equinox.internal.app.EclipseAppContainer.startDefaultApp(EclipseAppContainer.java:236)<br />at org.eclipse.equinox.internal.app.MainApplicationLauncher.run(MainApplicationLauncher.java:29)<br />at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)<br />at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)<br />at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368)<br />at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)<br />at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br />at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)<br />at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)<br />at java.lang.reflect.Method.invoke(Method.java:597)<br />at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559)<br />at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514)<br />at org.eclipse.equinox.launcher.Main.run(Main.java:1311)
應用程式錯誤,是一個RuntimeException,應用程式ID沒找到。
看第二行,eclipse.buildId=unknown
再看看其餘兩個Msg
com.genuitec.myeclipse.product8.ide找不到
ProvisioningEventBus無法獲得,中繼資料快取可以沒有清理好。
估想著就是Myeclipse.product8.ide找不到的問題,找找看吧。
在MyEclipse安裝根目錄有myeclipse.ini
-startup<br />../8.0GACommonDirectory/plugins/org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar<br />--launcher.library<br />../8.0GACommonDirectory/plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.0.200.v20090519<br />-install<br />D:/MyEclipse/MyEclipse8.0GA<br />-vm<br />D:/MyEclipse/8.0GACommonDirectory/binary/com.sun.java.jdk.win32.x86_1.6.0.013/jre/bin/client/jvm.dll<br />-configuration<br />configuration<br />-vmargs<br />-Xmx512m<br />-XX:MaxPermSize=256m<br />-XX:ReservedCodeCacheSize=64m<br />
startup目標包有了
launcher.library的目標檔案夾也有了
jvm就不用看了,運行都運行不了怎麼來的錯誤提示(其實啟動包和運行lib也一樣,不過就是不放心,順便看一眼)
應該是配置的問題,就在安裝目錄下configuration檔案夾裡有個config.ini
#Generated by Pulse at Fri Mar 26 15:11:06 CST 2010<br />#Fri Mar 26 15:11:06 CST 2010<br />com.genuitec.pulse.client.handshake.id=******<br />org.eclipse.update.reconcile=false<br />eclipse.p2.profile=com.poweredbypulse.profile-0-rb-578452<br />osgi.instance.area.default=@user.home/Workspaces/MyEclipse 8.0<br />osgi.framework=file/:../8.0GACommonDirectory/plugins/org.eclipse.osgi_3.5.1.R35x_v20090827.jar<br />com.genuitec.pulse.client.credentials=******<br />com.genuitec.pulse.client.blueprint.id=rmb-478634<br />com.genuitec.pulse.common.server.url=https/://www.poweredbypulse.com/:443<br />osgi.bundles=reference/:file/:org.eclipse.equinox.simpleconfigurator_1.0.102.v200911181800.jar@1/:start<br />org.eclipse.equinox.simpleconfigurator.configUrl=file/:org.eclipse.equinox.simpleconfigurator/bundles.info<br />eclipse.product=com.genuitec.myeclipse.product8.ide<br />osgi.splashPath=platform/:/base/plugins/com.genuitec.myeclipse.product8<br />eclipse.p2.data.area=file/:/C/:/Program Files/Genuitec/Common/configuration/<br />osgi.bundles.defaultStartLevel=4<br />osgi.framework.extensions=<br />com.genuitec.pulse.client.basedir.location.override=C/://Program Files//Genuitec
com.genuitec.pulse.client.handshake.id 和 com.genuitec.pulse.client.credentials有關客戶資訊,這就用******注掉了,是有資訊的
很醒目的
eclipse.product=com.genuitec.myeclipse.product8.ide,立刻搜尋了一下。
咦?D盤MyEclipse的安裝目錄下有一個/8.0GACommonDirectory/plugins/com.genuitec.myeclipse.product8_8.0.0.me200911192201
但檔案夾名卻與設定檔中的eclipse.product的配置資訊不對應,其它地方就再也找不到product對應的檔案夾或者包了,看來應該有對應檔或者註冊資訊
再看看config.ini
org.eclipse.equinox.simpleconfigurator.configUrl對應了一個bundles.info
bundles.info???正好了....去找出來看看(這檔案太大,就不貼出來了)
用普通文檔編輯器就能開啟,正好是外掛程式名對應外掛程式包或檔案夾的設定檔。
在裡面搜尋com.genuitec.myeclipse.product8.ide,沒找到!
縮小搜尋範圍吧,找com.genuitec.myeclipse.product8,找到兩目標,但是卻不是product8,而是com.genuitec.myeclipse.product85
一想,哦!正好是8.0更新8.5之後啟動不起來的,看來自動升級沒把config給改過來。
這.....莫非是MyEclipse的Bug?
不管是不是Bug,還得靠MyEclipse做東西的,趕緊修改config.ini,把這倆參數給改了
eclipse.product=com.genuitec.myeclipse.product85.ide
osgi.splashPath=platform/:/base/plugins/com.genuitec.myeclipse.product85
儲存設定檔,重新啟動.....Bingo!體驗8.5去嘍!