原文地址: 解决MyEclipse 8.0 升级至 8.5 无法启动 No applicati 作者: Demon
解决办法:
修改 config.ini,把这俩参数给改了
eclipse.product=com.genuitec.myeclipse.product8.ide
osgi.splashPath=platform:/base/plugins/com.genuitec.myeclipse.product8
改为:
eclipse.product=com.genuitec.myeclipse.product85.ide
osgi.splashPath=platform:/base/plugins/com.genuitec.myeclipse.product85
OK!!
前两天更新MyEclipse的SVN插件的时候提示可以从8.0更新到8.5,于是很Happy地点了更新。
当时也准备关闭才更新的,也没注意是否更新成功,今天再次启动,提示Message并无法启动......@_@
还好,无法启动有log看:
!SESSION 2010-03-29 00:39:45.734 ----------------------------------------------- eclipse.buildId=unknown java.version=1.6.0_13 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.equinox.app 0 0 2010-03-29 00:40:23.281 !MESSAGE Product com.genuitec.myeclipse.product8.ide could not be found. !ENTRY org.eclipse.equinox.p2.repository 4 0 2010-03-29 00:40:24.250 !MESSAGE ProvisioningEventBus could not be obtained. Metadata caches may not be cleaned up properly. !ENTRY org.eclipse.osgi 4 0 2010-03-29 00:40:31.421 !MESSAGE Application error !STACK 1 java.lang.RuntimeException: No application id has been found. at org.eclipse.equinox.internal.app.EclipseAppContainer.startDefaultApp(EclipseAppContainer.java:236) at org.eclipse.equinox.internal.app.MainApplicationLauncher.run(MainApplicationLauncher.java:29) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl<wbr>.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl<wbr>.invoke(NativeMethodAccessorImpl<wbr>.java:39) at sun.reflect.DelegatingMethodAccessor<wbr>Impl.invoke(DelegatingMethodAccessor<wbr>Impl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514) 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
view plain copy to clipboard print ?
-startup ../8.0GACommonDirectory/plugins/org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar --launcher.library ../8.0GACommonDirectory/plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.0.200.v20090519 -install D:/MyEclipse/MyEclipse8.0GA -vm D:/MyEclipse/8.0GACommonDirectory/binary/com.sun.java.jdk.win32.x86_1.6.0.013/jre/bin/client/jvm.dll -configuration configuration -vmargs -Xmx512m -XX:MaxPermSize=256m -XX:ReservedCodeCacheSize=64m
startup目标包有了
launcher.library的目标文件夹也有了
jvm就不用看了,运行都运行不了怎么来的错误提示(其实启动包和运行lib也一样,不过就是不放心,顺便看一眼)
应该是配置的问题,就在安装目录下configuration文件夹里有个config.ini
view plain copy to clipboard print ?
#Generated by Pulse at Fri Mar 26 15:11:06 CST 2010 #Fri Mar 26 15:11:06 CST 2010 com.genuitec.pulse.client.handshake.id=****** org.eclipse.update.reconcile=false eclipse.p2.profile=com.poweredbypulse.profile-0-rb-578452 [email protected]/Workspaces/MyEclipse 8.0 osgi.framework=file:../8.0GACommonDirectory/plugins/org.eclipse.osgi_3.5.1.R35x_v20090827.jar com.genuitec.pulse.client.credentials=****** com.genuitec.pulse.client.blueprint.id=rmb-478634 com.genuitec.pulse.common.server.url=https://www.poweredbypulse.com:443 osgi.bundles=reference:file:org.eclipse.equinox.simpleconfigurator_1.0.102.v200911181800.jar@1:start org.eclipse.equinox.simpleconfigurator.configUrl=file:org.eclipse.equinox.simpleconfigurator/bundles.info eclipse.product=com.genuitec.myeclipse.product8.ide osgi.splashPath=platform:/base/plugins/com.genuitec.myeclipse.product8 eclipse.p2.data.area=file:/C:/Program Files/Genuitec/Common/configuration/ osgi.bundles.defaultStartLevel=4 osgi.framework.extensions= 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.0GACommonDirectorypluginscom.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去喽!
<----------------------------------------------------------------->
我的问题表面上一样,但是出现问题的地方不一样:
在bundles.info 中没有com.genuitec.myeclipse.product85
在此文件的最后一行添加如下:
com.genuitec.myeclipse.product85,8.5.0.me201003250242,file:/C:/Program Files/Genuitec/Common/plugins/com.genuitec.myeclipse.product85_8.5.0.me201003250242/,4,false
注意product85_8.5.0.me201003250242可能每个人不一样,必须搜索安装目录查看自己的序号是什么。