eclipse 在 loading workbench 时闪退的解决方案

  有次在eclipse中运行发布于Tomcat中的项目,一切正常,但在中止Tomcat服务(Stop the server)时报错了,因为当时比较着急,没仔细看是什么错误,就匆匆忙忙地把eclipse关掉了。结果就如标题所描述的那样:运行eclipse后选择原来的工做空间后,在加载工做空间(loading workbench)时,进度条走了一小段就闪退了。刚开始觉得是偶然状况,以后再次打开eclipse、重启电脑后再次打开eclipse都仍是同样的状况!无奈,因为是在加载工做空间时闪退,就去工做空间下看了下日志(<workbench>\.metadata\.log),结果发现了这样的记录:html

!ENTRY org.eclipse.core.resources 2 10035 2014-05-28 22:25:27.998
!MESSAGE The workspace exited with unsaved changes in the previous session; refreshing workspace to recover changes.

!ENTRY org.eclipse.core.jobs 2 2 2014-05-28 22:25:33.603
!MESSAGE Job found still running after platform shutdown.  Jobs should be canceled by the plugin that scheduled them during shutdown: org.eclipse.ui.internal.Workbench$55

从意思上看:第一条说工做空间里存在未保存的改变;第二条说在平台(eclipse?Tomcat?)关闭后工做(这个工做不知是指什么,是指我以前运行的项目?)还在运行。session

  找到问题了,下面就只有问谷哥(我的感受比度娘更能准确的找到答案)!我把第一个问题“eclipse

The workspace exited with unsaved changes in the previous session

”放谷哥上搜,找到如下我的认为有用的答案:ide

 一、换个工做空间,从新导入项目。呃… 那我辛辛苦苦更改的eclipse配置不得从新配置!pass布局

 二、把"<workbench>\.metadata\.plugins\org.eclipse.core.resources\.snap"删掉就行了,但启动eclipse后要从新导入项目。有点麻烦,(也有没从新导项目的,参见http://www.cnblogs.com/yjmyzz/p/3588265.html,未测试)!pass测试

 三、把"<workbench>\.metadata\.plugins\org.eclipse.core.resources\.projects"下的相应项目(致使出错的项目,即上一次运行过的项目)目录下的".snap"删掉就能够了,不用从新导入项目。这个感受靠谱,不影响其余项目。试试看,但没找到".snap"文件,却是有".markers.snap"和".syncinfo.snap"。算了,死马当活马医吧,就把".markers.snap"和".syncinfo.snap"删掉。启动eclipse,仍是闪退。继续看日志,只剩下第二条记录,说明第一条记录的问题已经解决了。ui

  接下来固然仍是谷哥,搜“spa

Job found still running after platform shutdown

”,此次的解决方案比较一致,就是把"<workbench>/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi"文件删掉。我就照作了,结果果真能够启动eclipse了,只是原先修改过的eclipse界面布局恢复成默认的了,看了下preference配置,还好都在,否则又要花上半个小时从新配置。解决方法参见http://stackoverflow.com/questions/11310970/eclipse-juno-doesnt-start/12045547#12045547
命令行

  因为好奇,就把以前删除的".markers.snap"和".syncinfo.snap"又还原了,启动eclipse……日志

忽然间有种想说“次哦”的感脚:我前面费得什么劲儿啊,直接把这个删了不就得了!

  问题解决了,感受轻松多了。但很疑惑,就有editplus打开删掉了的"workbench.xmi"看了看,看到了有"persistedState"标签,里面有很长很长的字符才到标签结束。搜索了下项目名(致使eclipse闪退的项目),全在这个"persistedState"标签中,并且还有一堆的项目中的请求路径。忽然间想起曾见过有用命令行"eclipse -clean persistedState"解决该问题的方案,但我我的对命令行有中莫名的恐惧:它太强大了!刚开始没敢试!但如今问题已经决解了,并且也好奇因而否真能解决问题,就把删除了的"workbench.xmi"文件还原,覆盖已存在(启动eclipse后新生成的)的。启动eclipse,闪退!启动cmd,进入eclipse根目录,运行"eclipse -clean persistedState",eclipse启动界面弹出,等了片刻,弹出工做空间选择对话框,选好后继续,loading workbench… OK!成功启动了!看样子这个问题好像是"persistedState"致使的。随即又打开了"workbench.xmi",看了下"persistedState"标签,很简短就结束了,没有了以前关于项目的相关内容。

  反观下来,这个问题好像是因为项目没有正常关闭运行而致使"workbench.xmi"中的"persistedState"标签还保持在运行时的配置形成的。想了想,仍是记录下来吧!以备本身之后回顾用,同时也给他人提供一个解决相似问题的思路。说得很啰嗦,不过我的感受思路仍是挺清晰的,希望本身之后回顾时还能看得懂!

相关文章
相关标签/搜索