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"標籤還保持在運行時的配置形成的。想了想,仍是記錄下來吧!以備本身之後回顧用,同時也給他人提供一個解決相似問題的思路。說得很囉嗦,不過我的感受思路仍是挺清晰的,希望本身之後回顧時還能看得懂!

相關文章
相關標籤/搜索