Erro Eclipse / JUnit CreateProcess = 206. O nome do arquivo ou extensão é muito longo.

Esbarre nisso hoje ao tentar executar alguns testes junit de dentro do eclipse (helios) no Windows 7.

Erro:

java.io.IOException: Cannot run program "C:Program FilesJavajre6binjavaw.exe" (in directory ""): CreateProcess error=206, The filename or extension is too long
at java
.lang.ProcessBuilder.start(Unknown Source)
at java
.lang.Runtime.exec(Unknown Source)
at org
.eclipse.debug.core.DebugPlugin.exec(DebugPlugin.java:818)
at org
.eclipse.jdt.launching.AbstractVMRunner.exec(AbstractVMRunner.java:73)
at org
.eclipse.jdt.internal.launching.StandardVMRunner.run(StandardVMRunner.java:317)
at org
.eclipse.jdt.junit.launcher.JUnitLaunchConfigurationDelegate.launch(JUnitLaunchConfigurationDelegate.java:174)
....

Duas soluções

  • Patches do Eclipse:

https://bugs.eclipse.org/bugs/show_bug.cgi?id=327193

  • Encurte o caminho de classe:

http://stackoverflow.com/questions/201816/how-to-set-a-long-java-classpath-in-msdos-windows

Para aplicar os patches do Eclipse:

  • Baixe bug327193 3.4.2 hack.zip do link acima
  • Faça backup de eclipse / plugins / org.eclipse.jdt.launching_3.4. *. Jar existente
  • Copie e cole classes no patch para org / eclipse / jdt / internal / launching em seu org.eclipse.jdt.launching JAR (substitua os arquivos existentes)
  • Edite o arquivo META-INF /MANIFEST.MF em seu arquivo JAR org.eclipse.jdt.launching removendo tudo a partir da primeira entrada “NOME:”. Certifique-se de deixar dois (2) caracteres de quebra de linha no final do arquivo.
  • Reinicie o eclipse

Espero que isso ajude se você não conseguir encontrar uma solução mais fácil.