惱人的 CreateProcess error=206


問題

執行 JUnit 時會吐出以下類似錯誤訊息:
Exception occurred executing command line.Cannot run program "C:\Program Files\Java\jre6\bin\javaw.exe" (in directory "D:\src\expweb\expweb\trunk"): CreateProcess error=206, The filename or extension is too long


解法

Someone has written the SOP, you can fix this bug on your own.

https://bugs.eclipse.org/bugs/show_bug.cgi?id=327193#c69
有人幫忙修改好相關的程式碼轉成 class 檔,下載後按下面步驟做即可:
  1. 備份 ${elipse_home}/plugins/org.eclipse.jdt.launching_3.4.*.jar。
  2. 關掉 Eclipse。
  3. 把 ${elipse_home}/plugins/org.eclipse.jdt.launching_3.4.*.jar 改成 .zip。
  4. 把下載的四個 class 檔案放入 zip 檔中的 org\eclipse\jdt\internal\launching (覆蓋原有的 class 檔)。
  5. 把 zip 檔 META-INF 資料夾下除了 MANIFEST.MF 都刪除。
  6. 修改 MANIFEST.MF 把 "NAME:" 開頭的項目都刪除,確認有留兩列空白列。
  7. 把 .zip 改回 .jar。
  8. 重啟 Eclipse 即可。


下載 Download Here!!

If you are using Eclipse 4.2 Juno and org.eclipse.jdt.launching_3.6.100.v20120523-1953.jar, you can download the new jar file here! Enjoy it!

如果你剛好跟我一樣
  • 都是用 Eclipse 4.2 Juno
  • jar 檔名也是 org.eclipse.jdt.launching_3.6.100.v20120523-1953.jar
我已經修改包好,你可以到 GoogleDrive 下載。


官方討論

https://bugs.eclipse.org/bugs/show_bug.cgi?id=327193
看來是因為引用到的外部函示庫、其他專案太多,造成 Eclipse 呼叫 Java 執行 JUnit 時的 ClassPath 太長就爆炸了。

在 Windows 下的 Eclipse 都有可能發生此問題,然後官方只會在 Eclipse 4.3 之後才會修復(官方認為大多數人都不會發生這問題,但也不是每個人都只是寫寫 Hello World 啊 囧rz)。

0 則回應: