"CreateProcess error=206, The filename or extension is too long"的一個解決方案


Mule Studio 啟動時報錯: java.io.IOException: Cannot run program "E:\2000\Java\JDKUpdate\bin\javaw.exe" (in directory "E:\BCS_SLN\BCS\DeveloperSource\mule\congou-runtime-esb"): CreateProcess error=206, ÎļþÃû»ò)չÃû
邀月工作室

本機環境為:中文版Windows 8 Enterprise X64, java JDK為32位1.6.0.35版本,Mule Studio 3.2.1 CE(集成自Eclipse 3.6 Sp1)

開始懷疑是Mule環境出錯,采取如下措施:

1、刪除.Mule文件夾,刪除.metadata文件夾,重建工作空間,均無效。

2、刪除JDK,並重新安裝,重啟機器,故障依舊。

3、刪除JDK,並重新安裝64位JDK,重啟機器,故障依舊。

4、修改Mule Studio 工作空間編碼為UTF-8,GBK,ISO-8859-1,錯誤依舊。

google,看到有文章這樣描述:“CreateProcess error=206, The filename or extension is too long。”,原來那段亂碼是這個意思。My God!

進而看到這篇文章http://support.microsoft.com/kb/830473/en-us

該文提到:“在Windows下命令行支持的字符串長度是有限制的,在計算機上運行 Microsoft Windows XP 或更高版本,可以在命令提示符下使用的字符串的最大的長度 8191 個字符。 在運行 Microsoft Windows 2000 或 Windows NT 4.0 的計算機上, 將最大長度可以在命令提示符下使用的字符串的為 2047 個字符。

解決方案:

(1)Use shorter names for folders and files.
(2)Reduce the depth of folder trees.
(3)Store files in fewer folders so that fewer folders are required in the PATH environment variable.
(4)Investigate possible methods that you can use to reduce the dependency of PATH for locating .dll files.

也就是說,windows下,shell指令的長度限制,導致JAVAW 后面的參數字符串(本例中
在加載每個JAR時都要加上E:\BCS_SLN\BCS\DeveloperSource\mule\congou-runtime-esb這個前綴,總長度超過8191,從而導致截斷,報以上錯誤。

有人還寫了例子驗證,http://www.cnblogs.com/aigongsi/archive/2012/04/11/2442774.html

於是,修改工程所在路徑為E:\mule\congou-runtime-esb,問題解決!

 邀月工作室


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM