CreateProcess error=87

站在巨人的肩膀上:http://wangchongan.com/articles/eclipse-createprocess-error.html

 

情景:

在eclipse中,执行main方法函数。

 

 

错误提示:

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。

参考资料:http://coderwall.com/p/795oma

 

 

你可能感兴趣的:(process)