web-dev-qa-db-fra.com

CreateProcess error = 206, le nom de fichier ou l'extension est trop 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:\Programmes (x86)\Java\jre6\bin\javaw.exe" (dans le répertoire "C:\Utilisateurs\motiver\helios_workspace\TimeTracker") : CreateProcess error = 206, Le nom du fichier ou l'extension est trop long

J'ai effectué quelques recherches, mais la plupart des problèmes étaient liés à DataNucleus lorsque vous travailliez sur Google App Engine. Mais je n'utilise rien de lié à distance à Google App Engine. Je fais un petit projet avec Servlet 3.0 sur JBOSS 6. J'utilise Hibernate 4.1.2 pour ORM et RESTEasy pour exposer un service Web. J'ai créé un fichier util qui a une méthode main () qui, fondamentalement, supprime et recrée le schéma. Je lance le methos principal () quand j'ai besoin d'une base de données propre à des fins de test. Cela a bien fonctionné sur Tomcat 7, mais il a cessé de fonctionner lorsque je suis passé à JBoss 6.

Toute suggestion ou solution serait grandement appréciée.

68
motiver

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

Citant quelques réponses dans ce rapport de bogue dans Eclipse.org , voici les solutions de contournement. Choisissez celui qui vous fait le moins mal:

  • Réduire le classpath
  • Utilisez des répertoires au lieu de fichiers jar
  • Utilisez un fichier JAR compacté contenant tous les autres fichiers JAR, utilisez la variable classpath du fichier manifeste pour désigner les autres fichiers JAR.
  • Utilisez un chargeur de classe spécial qui lit le chemin de classe à partir d'un fichier de configuration
  • Essayez d'utiliser l'un des correctifs attachés dans le document de rapport de bogue
  • Utilisez un emballage propre, par exemple fourmi
  • Déplacer vers IntelliJ (Mise à jour: comme le souligne @nitind, ce n'est pas une option)

Mise à jour: Après juillet 2014, il existe un meilleur moyen (grâce à @ réponse de Brad-Mace ci-dessous :

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

34
espinchi

Si vous créez votre propre fichier de construction plutôt que d'utiliser Project -> Generate Javadocs, vous pouvez ajouter useexternalfile="yes" à la tâche javadoc, spécialement conçue pour résoudre ce problème.

16
Brad Mace

J'ai fait face à ce problème aujourd'hui et j'ai pu le résoudre en utilisant ce plugin Gradle

C'est l'URL de github est ceci

Si vous, comme moi, n'avez aucune idée de ce que Gradle est mais que vous devez exécuter un serveur pour effectuer votre travail frontal, vous devez rechercher le fichier build.gradle appelé pour démarrer votre serveur BE et ajoutez ceci en haut:

plugins {
  id "ua.eshepelyuk.ManifestClasspath" version "1.0.0"
}
7
Alejandro B.

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

6
Rodrigo

Répondant à ma propre question ici pour que la solution ne soit pas enterrée dans des commentaires. J'ai exporté le projet sous forme de fichier jar exécutable à partir d'Eclipse et j'ai exécuté une ligne de commande "Java -jar MyJar.jar" et tout fonctionne parfaitement.

6
motiver

J'ai eu la même erreur, en appelant Maven.

La cause fondamentale de mon problème était que la classpath était très énorme. La mise à jour du classpath a résolu le problème.

3
Sandeep Jindal

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

Veuillez télécharger le correctif pour Eclipse Juno ou une version plus récente:

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

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

Essaye ça: 

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

1
user3272405

Ce n’est pas spécifiquement pour Eclipse, mais j’ai contourné ce problème en créant un lien symbolique vers mon référentiel Maven et en le dirigeant vers quelque chose comme "C:\R". Ensuite, j'ai ajouté les éléments suivants à mon fichier settings.xml:

<localRepository>C:\R</localRepository>

Le chemin d'accès au référentiel maven contribuait aux problèmes de longueur dans ma machine Windows.

1
Shygar

Dans mon cas, l'erreur montrait, car la version du système Java était différente de celle de intellijj/Eclipse Java. Le système et l'utilisateur avaient des versions diff Java. Si vous compilez votre code avec une version et que vous avez essayé de l'exécuter avec une autre version, le système affichera une erreur. User Java version is 1.8

#The system Java version is 1.7.131
$ Java -version
Java version "1.7.0_131"

En résumé, assurez-vous que votre code est compilé et exécuté par la même version Java.

0
zee

cela se produit en raison de DataNucleus parfois écraser les arguments avec plusieurs chemins.

Vous devez les écraser avec ceci:

-enhancerName ASM -api JDO -pu MediaToGo

J'espère vous aider!

0
Rodrigohsb

J'ai eu l'erreur ci-dessous quand je lance ' ant deploy '

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

Fixé par run ' ant clean ' devant elle.

0
maoyang

J'ai eu la même erreur. Des solutions éprouvées comme le nettoyage, la reconstruction, invalidateCache, le redémarrage, etc., mais rien ne fonctionne.

Je viens de créer un nouveau dossier avec un nom abrégé et de copier tous les fichiers (dossier de l'application, fichiers de classement, etc.) dans le nouveau dossier. Application ouverte dans le studio Android et son bon fonctionnement.

0
Tara

J'ai la même erreur dans le studio Android. J'ai pu résoudre ce problème en exécutant Build -> Clean Project dans l'EDI.

0
Kiran

Une réponse valide de ce fil était la bonne réponse pour mon cas particulier . Spécifier le chemin du dossier ORM pour datanucleus certainement réduire le chemin de compilation Java.

https://stackoverflow.com/a/1219427/1469481

0
smora

Cela tient à votre nom de répertoire de projet long, qui vous donne une très longue CLASSPATH tout à fait. Soit vous devez réduire les fichiers JAR ajoutés à CLASSPATH (assurez-vous de ne supprimer que les fichiers JAR inutiles), soit le meilleur moyen consiste à réduire le répertoire du projet et à importer à nouveau le projet. Cela réduira la CLASSPATH. Cela a fonctionné pour moi.

0
deepesh kumar

J'ai eu le même problème, mais j'utilisais plutôt Netbeans.
J'ai trouvé une solution donc je partage ici parce que je ne l'ai pas trouvée nulle part, alors si vous avez ce problème sur netbeans, essayez ceci:
(les noms peuvent être faussés car mon netbeans est en portugais) Faites un clic droit sur projet> propriétés> construction> compilation> Décocher la compilation sur la machine virtuelle externe 

0
Régis B.

Pour le résoudre:

Si vous utilisez Eclipse:

Déplacer le référentiel .m2 vers

c:\Allez dans Eclipse> Windows/Préférences/Maven/Paramètres utilisateur -> Créez votre propre fichier setting.xml avec son contenu:

<settings>
  <localRepository>c:/.m2/repository</localRepository>
</settings>

Si vous utilisez IntelliJ: Allez à IntelliJ> en cliquant avec le bouton droit de la souris sur "pom.xml"> maven> create "settings.xml".

avec son contenu:

<settings>
      xmlns="yourcontent"
      xmlns:xsi="yourcontent"
      xsi:schemaLocation="yourcontent.xsd">
  <localRepository>c:/.m2/repository</localRepository>
</settings>
0
R. Pereira

La question est ancienne mais reste valable. Je rencontre souvent cette situation lorsqu'un nouveau membre rejoint mon équipe ou qu'un nouveau segment de code est ajouté au code existant. La solution simple que nous suivons consiste à "Réduire le chemin de classe" en remontant les répertoires. 

Comme question mentionnée, ceci n'est pas spécifique à Eclipse. J'ai également rencontré ce problème dans IntelliJ Idea 14 et 2018. 

Après de longues recherches, j’ai trouvé la solution: régler le 

fork = faux

dans javc du fichier de construction ant. 

<javac destdir="${build.dir}" fork="false" debug="on">
    <classpath .../>
    <src ... />
    <patternset ... />
</javac>

Voici à quoi ressemble ma fourmi, javac. Pour en savoir plus sur fork, veuillez consulter la documentation.

0
Don D