131 votes

CreateProcess error=206, The filename or extension is too long lors de l'exécution de la méthode main()

J'ai cette erreur dans eclipse helios :

Une exception s'est produite lors de l'exécution de la ligne de commande. Impossible d'exécuter le programme " C:\Program Fichiers (x86) \Java\jre6\bin\javaw.exe "(dans le répertoire " C:\Users\motiver\helios_workspace\TimeTracker ") : CreateProcess error=206, Le nom de fichier ou l'extension est trop long.

J'ai fait quelques recherches mais la plupart des problèmes étaient liés à DataNucleus lorsqu'on travaille sur Google App Engine. Mais je n'utilise rien qui soit lié de près ou de loin à Google App Engine. Je réalise un petit projet avec Servlet 3.0 sur JBOSS 6. J'utilise Hibernate 4.1.2 comme ORM et RESTEasy pour exposer un service Web. J'ai créé un fichier util qui comporte une méthode main() qui, en gros, supprime et recrée le schéma. J'exécute la méthode main() lorsque j'ai besoin d'une base de données propre à des fins de test. Cela fonctionnait bien avec Tomcat 7, mais cela a cessé de fonctionner lorsque je suis passé à JBoss 6.

Tout indice ou solution serait grandement apprécié.

0 votes

0 votes

Cela pourrait être utile : bugs.eclipse.org/bugs/show_bug.cgi?id=327193

0 votes

Je veux comprendre si C:\Program Files (x86)\Java\jre6\bin\javaw.exe est long ou l'autre C:\Users\motiver\helios_workspace\TimeTracker . J'ai également le même problème.

58voto

espinchi Points 1373

Il n'existe pas de solution simple (comme quelques clics ou une simple commande) à ce problème.

Citation de quelques réponses dans ce rapport de bogue dans Eclipse.org voici les solutions de contournement. Choisissez celle qui est la moins douloureuse pour vous :

  • Réduire le classpath
  • Utiliser des répertoires au lieu de fichiers jar
  • Utilisez un fichier jar packagé qui contient tous les autres jars, utilisez la variable classpath dans le fichier manifest pour pointer vers les autres jars.
  • Utiliser un chargeur de classe spécial qui lit le classpath à partir d'un fichier de configuration.
  • Essayez d'utiliser l'un des correctifs joints dans le document de rapport de bogue.
  • Utiliser un propre wrapper, par exemple ant.

Mise à jour : Après juillet 2014, il y a une meilleure façon de faire (grâce à La réponse de @Brad-Mace ci-dessous :

Si vous avez créé votre propre fichier de construction au lieu d'utiliser Project -> Generate Javadocs alors vous pouvez ajouter useexternalfile="yes" à la tâche Javadoc, qui est conçue spécifiquement pour résoudre ce problème.

0 votes

Merci pour les excellentes suggestions. J'ai exporté le projet en tant que jar exécutable à partir d'Eclipse et j'ai utilisé la ligne de commande "java -jar MyJar.jar" et cela fonctionne parfaitement bien. Je suppose que cela ressemble un peu à votre troisième point.

22 votes

Comment IntelliJ pas avoir ce problème si c'est entièrement à cause de la longueur du classpath utilisé lors du lancement de la JVM ?

1 votes

Il se peut que ce soit uniquement un problème d'eclipse, je suis capable d'exécuter l'application en utilisant maven.

19voto

Brad Mace Points 12173

Si vous créez votre propre fichier de construction plutôt que d'utiliser le programme Project -> Generate Javadocs vous pouvez ajouter useexternalfile="yes" à la javadoc qui est conçu spécifiquement pour résoudre ce problème.

5 votes

Bonjour - comment faire exactement pour ajouter ceci ?

0 votes

@PrateekNarendra vous devez l'ajouter dans votre fichier de construction ant (build.xml) : ant.apache.org/manual/Tasks/javadoc.html

8voto

motiver Points 547

Je réponds ici à ma propre question afin que la solution ne soit pas noyée dans les commentaires. J'ai exporté le projet en tant que jar exécutable à partir d'Eclipse et j'ai utilisé la ligne de commande "java -jar MyJar.jar" et cela fonctionne parfaitement bien.

6voto

rod Points 185

Essayez de mettre à jour votre version d'Eclipse, le problème a été fermé récemment (2013-03-12). Consultez le rapport de bogue https://bugs.eclipse.org/bugs/show_bug.cgi?id=327193

3voto

Dans le rapport de bogue Bogue 327193 il est considéré comme corrigé, mais cela m'est arrivé récemment avec Eclipse Kepler 4.3.2.

Veuillez télécharger le patch pour Eclipse Juno ou plus récent :

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

  1. Après le téléchargement, sauvegardez les fichiers existants eclipse/plugins/org.eclipse.jdt.launching_3.*.jar
  2. Copiez et collez les classes du patch dans le JAR org.eclipse.jdt.launching (remplacez les fichiers existants).
  3. Redémarrez Eclipse.

0 votes

Cela a fonctionné pour moi. Notez qu'en appliquant cette méthode, mes installations Java JDK ont été retirées des JRE installés. J'ai dû les ajouter à nouveau. Seule une installation JRE a persisté.

0 votes

C'est drôle, tu cherches des réponses sur SO sur ton problème et l'une des réponses est celle d'une personne avec qui tu as étudié/travaillé :)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X