2012-05-09 376 views
56

tengo este error en Helios Eclipse:error CreateProcess = 206, El nombre de archivo o la extensión es demasiado largo cuando se ejecuta el método main()

produjo excepción de la ejecución de línea de comandos. No se puede ejecutar el programa "C: \ Archivos de programa (x86) \ Java \ jre6 \ bin \ javaw.exe" (en el directorio "C: \ Users \ motiver \ helios_workspace \ TimeTracker"): CreateProcess error = 206, El nombre de archivo o extensión es demasiado largo

Investigué un poco, pero la mayoría de los problemas estaban relacionados con DataNucleus cuando trabajaba en Google App Engine. Pero no estoy usando nada remotamente relacionado con Google App Engine. Estoy haciendo un pequeño proyecto con Servlet 3.0 en JBOSS 6. Estoy usando Hibernate 4.1.2 para ORM y RESTEasy para exponer un servicio web. Creé un archivo util que tiene un método main() que básicamente descarta y vuelve a crear el esquema. Ejecuto el main() methos cuando necesito una base de datos limpia para fines de prueba. Funcionó bien en Tomcat 7 pero dejó de funcionar cuando me mudé a JBoss 6.

Cualquier sugerencia o solución sería muy apreciada.

+0

posible duplicado de [Error de CreateProcess = 206, el nombre de archivo o la extensión es demasiado larga] (http://stackoverflow.com/questions/8850920/createprocess-error-206-the-filename-or-extension-is-too -long) –

+0

Puede ser útil: https://bugs.eclipse.org/bugs/show_bug.cgi?id=327193 – Jeremy

+0

Quiero entender si 'C: \ Archivos de programa (x86) \ Java \ jre6 \ bin \ javaw .exe' es largo o el otro 'C: \ Users \ motiver \ helios_workspace \ TimeTracker'. También estoy teniendo el mismo problema. –

Respuesta

32

No hay una solución simple (como en un par de clics o un simple comando) a este problema.

Citando algunas respuestas en this bug report in Eclipse.org, estas son las soluciones. Elija el que es lo menos doloroso para usted:

  • Reducir la ruta de clase
  • Use directorios en lugar de archivos jar
  • utilizar un archivos jar lleno, que contiene todos los demás frascos, utilice la variable de ruta de clases dentro del archivo de manifiesto para apuntar a los otros frascos
  • utilizar un cargador de clase especial que lee la ruta de clase de un archivo de configuración
  • intenta utilizar uno de los parches unidos en el documento de informe de error
  • utilizar un propio envoltorio p.ej. hormiga
  • Mover a IntelliJ (Actualización: como @nitind señala, esto no es una opción)

actualización: Después de julio de 2014, hay una manera mejor (gracias a @Brad-Mace's answer below:

Si ha creado su propio archivo de compilación en lugar de usar Project -> Generate Javadocs, puede agregar useexternalfile="yes" a la tarea de Javadoc, que está diseñada específicamente para resolver este problema.

+0

Gracias por las excelentes sugerencias.Exporté el proyecto como un archivo ejecutable dentro de Eclipse e hice una línea de comando "java -jar MyJar.jar" y funciona perfectamente bien. Supongo que esto es algo similar a su tercer punto de viñeta. – motiver

+7

¿Cómo podría IntelliJ * no * tener este problema si es completamente debido a la longitud de la ruta de clase utilizada al iniciar la JVM? – nitind

+1

Esto podría ser solo un problema de eclipse, puedo ejecutar la aplicación usando maven. – surajz

5

Respondiendo a mi propia pregunta aquí para que la solución no tenga problemas ied en comentarios. Exporté el proyecto como un archivo ejecutable dentro de Eclipse e hice una línea de comando "java -jar MyJar.jar" y funciona perfectamente bien

0

que sucede debido a DataNucleus a veces sobrescribir los argumentos con muchas rutas.

Tienes que sobreescribirlos con esto:

-enhancerName ASM -API JDO -pu MediaToGo

Esperanza te ayude!

13

Si crea su propio fichero de construcción en lugar de utilizar Project -> Generate Javadocs puede agregar useexternalfile="yes" a la tarea javadoc, que está diseñado específicamente para resolver este problema.

+0

Hola - ¿cómo exactamente agrego esto? –

+0

@PrateekNarendra lo agregarías en tu archivo de construcción ant (build.xml): https://ant.apache.org/manual/Tasks/javadoc.html –

3

En el informe de error Bug 327193 se considera fijo, pero me ha sucedido recientemente con Eclipse Kepler 4.3.2.

Por favor, descargue el parche para Eclipse Juno o más reciente:..

https://bugs.eclipse.org/bugs/attachment.cgi?id=216593

  1. Después de descargar una copia de seguridad existente del eclipse/plugins/* org.eclipse.jdt.launching_3 jar
  2. Copia y pegue las clases en el parche en org.eclipse.jdt.launching JAR (reemplace los archivos existentes).
  3. Reiniciar Eclipse.
+0

Esto funcionó para mí. Tenga en cuenta que aplicar esto eliminó mis instalaciones JDK Java de JRE instalados. Tuve que volver a agregarlos. Solo 1 instalación de JRE persistió. – Joetjah

3

Tengo el mismo error, al invocar a Maven.

La causa de mi problema era classpath era muy grande. La actualización del classpath solucionó el problema.

0

que tiene el error abajo cuando corro 'hormiga desplegar'

Cannot run program "C:\java\jdk1.8.0_45\bin\java.exe": CreateProcess error=206, The filename or extension is too long 

arreglaron por correr 'hormiga limpia' antes de ella.

+0

¿Qué sucede si uso Android Studio? También estoy recibiendo este mismo problema – portfoliobuilder

1

Prueba esto:

java-jar -Dserver.port = 8080 build/libs/APP_NAME_HERE.jar

0

Tengo el mismo error en el estudio androide. Pude resolverlo ejecutando Build ->Clean Project en el IDE.

Cuestiones relacionadas