本文轉載於:http://wangchongan.com/articles/eclipse-createprocess-error.html
今天遇到在用Eclipse indigo 3.6啓動一個類的Main方法時遇到報錯,啓動不成功,Eclipse彈出如下異常:
Exception occurred executing command line.
Cannot run program “D:\soft\Java\jdk1.6.0_12\bin\javaw.exe” (in directory “E:\DevCode\Ali\20121008_ordercenter”): CreateProcess error=87, ²ÎÊý´í
網上有人說是由於classpath路徑太長導致,有人說是Maven倉庫的路徑太長導致,總之由於路徑長導致是對的,但是網上的很多解決的辦法是去把路徑改短,這裏有投機取巧之嫌,因爲萬一路徑超長,就算把maven respositroy 的路徑根目錄調整短一點也不至於就能解決問題。
正確的解決辦法應該是從eclipse根源去解決,這個問題是由於eclipse的一個BUG導致的,需要打下補丁去徹底解決該問題。
Eclipse bug report:https://bugs.eclipse.org/bugs/show_bug.cgi?id=327193
解決步驟:
1、根據自己的eclipse版本,在Eclipse bug report頁面下載合適的補丁。比如我的eclipse indigo是3.6的,所以需要下載適合3.6版本的補丁。
2、解壓下載的文件,得到如下幾個文件。
3、到Eclipse的安裝目錄 $Eclipse_HOME/plugins/下找到org.eclipse.jdt.launching_XXX.XXX.jar文件(XXX部分由不同的版本可能不同,比如我的就是org.eclipse.jdt.launching_3.6.0.v20110509.jar),把該文件進行解壓
4、把下載的補丁的4個文件替換到解壓jar的同路徑org.eclipse.jdt.internal.launching下
5、把解壓jar根目錄下的META-INF/MANIFEST.MF用文本編輯器打開,把所有“Name:”開頭的類似於以下的文本全部刪除掉。我的版本中是從第26行開始,後面的全部刪除掉。另外,注意刪除完畢後,在最後一定要留上兩個空行。保存。
6、返回到解壓後的jar的根目錄,採用打包命令 jar cf org.eclipse.jdt.launching_XXX.XXX.jar *.* (jar的文件名一定要和你原先的名稱一致)進行打包。
7、打包得到 org.eclipse.jdt.launching_XXX.XXX.jar 後,把該jar替換覆蓋至$Eclipse_HOME/plugins/,重啓Eclipse,OK,問題解決了吧?
參考資料:http://coderwall.com/p/795oma
替換的jar文件下載地址 :http://download.csdn.net/detail/m_drm/7081007
(全文完)