wake-up-neo.com

CreateProcess error = 206, Der Dateiname oder die Erweiterung ist beim Ausführen der main () - Methode zu lang

Ich habe diesen Fehler in Eclipse Helios:

Ausnahme beim Ausführen der Befehlszeile . Das Programm "C:\Programme (x86)\Java\jre6\bin\javaw.exe" kann nicht ausgeführt werden (im Verzeichnis "C:\Users\motiver\helios_workspace\TimeTracker"). : CreateProcess error = 206, Der Dateiname oder die Erweiterung ist zu lang

Ich habe ein wenig recherchiert, aber die meisten Probleme betrafen DataNucleus bei der Arbeit mit Google App Engine. Ich verwende jedoch keine Remote-Funktionen in Bezug auf Google App Engine. Ich mache ein kleines Projekt mit Servlet 3.0 auf JBOSS 6. Ich verwende Hibernate 4.1.2 für ORM und RESTEasy, um einen Webdienst bereitzustellen. Ich habe eine util-Datei erstellt, die über eine main () - Methode verfügt, die das Schema grundsätzlich löscht und neu erstellt. Ich führe die main () -Methode aus, wenn ich zu Testzwecken eine saubere Datenbank benötige. Bei Tomcat 7 hat es gut funktioniert, aber als ich zu JBoss 6 wechselte, funktionierte es nicht mehr.

Jeder Hinweis oder Lösung wäre sehr dankbar.

68
motiver

Es gibt keine einfache Lösung (wie durch ein paar Klicks oder einen einfachen Befehl) für dieses Problem.

Zitieren aus einigen Antworten in diesem Fehlerbericht in Eclipse.org , dies sind die Problemumgehungen. Wählen Sie diejenige aus, die Ihnen am wenigsten weh tut:

  • Reduzieren Sie den Klassenpfad
  • Verwenden Sie Verzeichnisse anstelle von JAR-Dateien
  • Verwenden Sie gepackte JAR-Dateien, die alle anderen JAR-Dateien enthalten. Verwenden Sie die Klassenpfadvariable in der Manifestdatei, um auf die anderen JAR-Dateien zu verweisen
  • Verwenden Sie einen speziellen Klassenlader, der den Klassenpfad aus einer Konfigurationsdatei liest
  • Versuchen Sie, einen der beigefügten Patches im Fehlerberichtdokument zu verwenden
  • Verwenden Sie einen eigenen Wrapper, z. Ameise
  • Zu IntelliJ wechseln (Update: @nitind weist darauf hin, dass dies keine Option ist)

Update: Nach Juli 2014 gibt es einen besseren Weg (dank der Antwort von @ Brad-Mace unten :

Wenn Sie anstelle von Project -> Generate Javadocs eine eigene Build-Datei erstellt haben, können Sie useexternalfile="yes" zur Javadoc-Task hinzufügen, die speziell zur Lösung dieses Problems entwickelt wurde.

34
espinchi

Wenn Sie eine eigene Build-Datei erstellen, anstatt Project -> Generate Javadocs zu verwenden, können Sie useexternalfile="yes" zur javadoc-Task hinzufügen, die speziell zur Lösung dieses Problems entwickelt wurde.

16
Brad Mace

Ich war heute mit diesem Problem konfrontiert und konnte es mit diesem Gradle-Plugin lösen.

Es ist github URL ist das

WENN Sie wie ich keine Ahnung haben, was Gradle ist, sondern ein Backend ausführen müssen, um Ihre Front-End-Arbeit zu erledigen, müssen Sie die Datei build.gradle suchen, die zum Starten Ihres BE-Servers aufgerufen wird und füge dies oben hinzu:

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

Aktualisieren Sie Ihre Eclipse-Version. Das Problem wurde kürzlich geschlossen (2013-03-12). Überprüfen Sie den Fehlerbericht https://bugs.Eclipse.org/bugs/show_bug.cgi?id=327193

6
Rodrigo

Hier meine eigene Frage beantworten, damit die Lösung nicht in Kommentaren begraben wird. Ich habe das Projekt als lauffähiges Glas von Eclipse aus exportiert und eine Befehlszeile "Java-jar MyJar.jar" ausgeführt, und es funktioniert einwandfrei

6
motiver

Ich habe den gleichen Fehler erhalten, als ich Maven anrief.

Die Hauptursache für mein Problem war, dass classpath sehr groß war. Das Aktualisieren des Klassenpfads hat das Problem behoben.

3
Sandeep Jindal

Im Fehlerbericht Bug 327193 gilt es als behoben, aber mir ist kürzlich Eclipse Kepler 4.3.2 passiert.

Bitte laden Sie den Patch für Eclipse Juno oder neuer herunter:

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

  1. Nach dem Download sichern Sie vorhandene Eclipse/plugins/org.Eclipse.jdt.launching_3. *. Jar
  2. Kopieren Sie die Klassen im Patch in org.Eclipse.jdt.launching JAR (Ersetzen Sie vorhandene Dateien).
  3. Starten Sie Eclipse neu.
3

Versuche dies: 

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

1
user3272405

Dies ist nicht speziell für Eclipse gedacht, aber ich bin damit umgekommen, indem ich einen symbolischen Link zu meinem Maven-Repository erstellt und auf etwas wie "C:\R" verwiesen habe. Dann fügte ich der Datei settings.xml Folgendes hinzu:

<localRepository>C:\R</localRepository>

Der Maven-Repository-Pfad trug zu den Längenproblemen in meiner Windows-Maschine bei.

1
Shygar

In meinem Fall wurde der Fehler angezeigt, weil sich die Systemversion Java von der Intellijj/Eclipse-Version Java unterschied. System und Benutzer hatten unterschiedliche Java Versionen. Wenn Sie Ihren Code mit einer Version kompilieren und versuchen, ihn mit einer anderen Version auszuführen, tritt ein Fehler auf. User Java version is 1.8

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

Um es kurz zu machen: Stellen Sie sicher, dass Ihr Code mit derselben Java Version kompiliert und ausgeführt wird.

0
zee

dies geschieht, weil DataNucleus die Argumente manchmal mit vielen Pfaden überschreibt.

Sie müssen sie mit diesem überschreiben:

-enhancerName ASM -api JDO -pu MediaToGo

Hoffe dir zu helfen!

0
Rodrigohsb

Beim Ausführen von ' ant deploy ' wurde der Fehler angezeigt.

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

Behebung des Problems durch Ausführen von " ant clean " davor.

0
maoyang

Ich habe den gleichen Fehler bekommen. Versuchte Lösungen wie Reinigen, Umbauen, InvalidateCache, Neustart usw., aber nichts funktioniert.

Ich habe gerade einen neuen Ordner mit kurzem Namen erstellt und alle Dateien (App-Ordner, Gradle-Dateien usw.) in den neuen Ordner kopiert. Geöffnete Anwendung in Android Studio und funktioniert einwandfrei.

0
Tara

Ich habe den gleichen Fehler in Android Studio. Ich konnte es durch Ausführen von Build -> Clean Project in der IDE beheben.

0
Kiran

Die gültige Antwort aus diesem Thread war die richtige Antwort für meinen speziellen Fall. Geben Sie den ORM-Ordnerpfad für Datanucleus an, und reduzieren Sie die Kompilierung des Java-Pfads.

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

0
smora

Dies liegt an Ihrem langen Projektverzeichnisnamen, der Ihnen insgesamt eine sehr lange CLASSPATH gibt. Entweder müssen Sie die unter CLASSPATH hinzugefügten Gläser reduzieren (stellen Sie sicher, dass nur nicht benötigte Gläser entfernt werden). Dadurch wird die CLASSPATH..__ reduziert, was für mich funktioniert hat.

0
deepesh kumar

Ich hatte das gleiche Problem, aber ich habe stattdessen Netbeans verwendet.
Ich habe eine Lösung gefunden, also teile ich sie hier, weil ich dies nirgendwo gefunden habe. Wenn Sie also dieses Problem auf Netbeans haben, versuchen Sie Folgendes:
(Namen sind möglicherweise deaktiviert, da meine Netbeans auf Portugiesisch sind) Klicken Sie mit der rechten Maustaste auf Projekt> Eigenschaften> Erstellen> Kompilieren> Deaktivieren Sie die Option zum Ausführen der Kompilierung auf einer externen VM. 

0
Régis B.

Um es zu lösen:

Wenn Sie Eclipse verwenden:

Verschieben Sie das .m2-Repository nach

c:\Gehe zu Eclipse> Windows/Einstellungen/Maven/Benutzereinstellungen -> Erstelle deine eigene setting.xml mit ihrem Inhalt:

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

Wenn Sie IntelliJ verwenden: Gehen Sie zu IntelliJ und klicken Sie mit der rechten Maustaste auf "pom.xml"> maven> create "settings.xml".

mit seinem Inhalt:

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

Frage ist alt, aber noch gültig. Ich stoße oft auf diese Situation, wenn ein neues Mitglied meinem Team beitritt oder ein neuer Codesegment zum vorhandenen Code hinzugefügt wird. Eine einfache Problemumgehung besteht darin, den Klassenpfad zu reduzieren, indem die Verzeichnisse nach oben verschoben werden. 

Wie bereits erwähnt, ist dies nicht spezifisch für Eclipse. Ich bin auf diese Ausgabe auch in IntelliJ Idea 14 und 2018 gestoßen. 

Nach langem Suchen fand ich die Lösung, die Einstellung vorzunehmen 

gabel = falsch

in javc von ant build file. 

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

So sieht mein Ant-Build-Javac jetzt aus. Weitere Informationen zu Fork erhalten Sie unter siehe Ant-Dokumentation.

0
Don D