Ich habe eine neueste maven-3.0.4
Version unter Windows 7 installiert :
Die Installationsdetails lauten wie folgt:
Installationspfad:
C:\apache-maven-3.0.4
Umgebungsvariablen sind:
M2_HOME C:\apache-maven-3.0.4\apache-maven\src
JAVA_HOME C:\Program Files\Java\jdk-1.7.0_04
Hinzugefügte Pfadvariablen sind:
%M2_HOME%\bin;%JAVA_HOME%\bin;
Im Befehlsfenster wird es folgendermaßen angezeigt:
C:\>java -version
java version "1.7.0_04"
Java(TM) SE Runtime Environment (build 1.7.0_04-b22)
Java HotSpot(TM) Client VM (build 23.0-b21, mixed mode, sharing)
C:\>mvn -version
Error: Could not find or load main class org.codehaus.plexus.classworlds.launcher.Launcher
Dies ist die einzige Version auf maven, die auf meinem PC installiert ist, und die in vielen Blogs angegebene Lösung, die sich auf das Löschen der vorherigen M2_HOME
Umgebungsvariablen bezieht, ist ungültig.
Ich habe alle in Blogs angegebenen Lösungen gelesen und ausprobiert, wie zum Beispiel:
aber immer noch nicht in der Lage, dorthin zu gelangen. Was könnte mir in dieser ganzen Sache fehlen? Danke im Voraus.
zip
und es war kaputt. Ersetzt durch.tar.gz
und es funktioniert. WennM2_HOME
also richtig eingestellt ist, versuchen Sie wirklich zu überprüfen, ob das, was Sie heruntergeladen haben, korrekt ist.Antworten:
Ich bin auch auf dieses Problem gestoßen und habe diesen Artikel gefunden. Für Maven3 hat es den Trick getan, den Namen meiner Umgebungsvariablen von M2_HOME in M3_HOME zu ändern. Ich bin auf einem Mac mit OSX 10.9 mit JDK 1.7. Hoffe das hilft.
Hinweis: Bitte löschen Sie M2_HOME, falls bereits festgelegt. Z.B:
unset M2_HOME
quelle
unset M2_HOME
.Obwohl die Frage beantwortet ist, möchte ich hinzufügen, dass Sie die Binärdatei heruntergeladen haben, wenn Sie den oben genannten Fehler erhalten .
Die Quelldatei sollte nur heruntergeladen werden, wenn Sie ein fortgeschrittener Benutzer sind und wissen, wie Sie damit umgehen sollen.
Ich hatte eine ganze Reihe von Leuten, die die falsche Datei heruntergeladen haben, Senioren und Junioren
quelle
Ich hatte das gleiche Problem und konnte es lösen, indem ich die Umgebungsvariablen sorgfältig wiederholte:
Auch ich machte sie alle System - Variablen, nicht Benutzervariablen wie die Maven Anweisungen sagen. Wenn du
Stellen Sie sicher, dass die Variablen% M2% und% JAVA_HOME% vollständig erweitert sind, dh:
quelle
M2
Umgebungsvariable verwendet? Ich habe nurJAVA_HOME
undM2_HOME
.M2
Umgebungsvariable wird manchmal verwendet, um den%M2_HOME\bin%
Pfad anzugeben , der dann wiederum der%Path%
Umgebungsvariablen hinzugefügt wird. Dies ist erforderlich, wenn die Maven-Batchdateimvn.bat
nicht in den%Path%
definierten Standardeinträgen gefunden werden kann . Ein typischer Anwendungsfall wäre ein nicht standardmäßiges Installationsverzeichnis für Maven.Hatte dieses Problem auf zwei verschiedenen Ubuntu 12.04-Installationen, obwohl die Installationen von apt-get durchgeführt wurden. Problem war M2_HOME.
Behoben mit:
quelle
export M2_HOME=/usr/share/maven
. Wie @jimkont zeigte, ist manchmal maven2 oder maven3 (wenn Sie natürlich maven3 installiert haben).Ich glaube, dieser Fehler wurde durch das Herunterladen von SRC anstelle von BINARY von der Maven-Site verursacht. Bitte stellen Sie sicher, dass Sie Binary zip herunterladen.
Aufgrund des folgenden Pfads erhalten Sie nur, wenn Sie SRC herunterladen:
quelle
Es hört sich so an, als hätten Sie die Quelldateien anstelle der Binärdateien basierend auf Ihren Pfadinformationen installiert (extrahiert). Versuchen Sie stattdessen, die Binärdateien zu installieren und den Antworten der anderen Poster zu folgen.
quelle
Nun, ich hatte dieses Problem und nachdem ich diesen Beitrag und insbesondere die Antwort von khmarbaise gesehen hatte, bemerkte ich, dass dies der Fall
M2_HOME
warund dann habe ich es chaged
Ich möchte erwähnen, dass ich Windows 7 (x64) verwende.
quelle
Die Lösung für spätere Versionen von Maven ist unkompliziert. Ich bin auf OS X ElCap, 10.11.6 und habe auf Maven 3.3.9 aktualisiert. Ich hatte das gleiche Problem mit Fehler "
Could not find ...org.codehaus.plexus...
". Der hier bereitgestellte Link bot die Lösung in einem Kommentar von McKamey - löschen Sie einfach M2_HOME (unset M2_HOME
). Nachdem ich das versucht hatte, funktionierte alles wie erwartet.Dies kann bestätigt werden, indem Sie
Maven install page
Folgendes besuchen : "Fügen Sie das bin-Verzeichnis des erstellten Verzeichnisses apache-maven-3.3.9 zur Umgebungsvariablen PATH hinzu" - ohne Erwähnung von M2_HOME oder M3_HOME.quelle
Sie sollten den Speicherort des M2_HOME wie folgt ändern:
Darüber hinaus sieht die Installation des JDK eher wie eine JRE als wie eine JDK aus. Für Maven benötigen Sie JDK und NICHT JRE.
quelle
Ich bin auf meinem Mac OSX auf ein ähnliches Problem gestoßen. Nach einer Reihe von Versuchen und Irrtümern habe ich es endlich gelöst.
Mein
~/.bash_profile
sah so ausund wenn ich es
echo M2_HOME
vom Terminal aus versuchte , zeigte es mir den richtigen Pfad, aber wenn ich versuchte, einen Maven-Befehl wiemvn clean
oder abzufeuernmvn install
, gab es immer das gleiche ProblemIch löste dieses Problem durch meinen Wechsel
M2_HOME
zu diesemUnd voila! Es fing an zu arbeiten! Verschieben Sie einfach die Position von
/bin
von M2_HOME nach vorPATH
quelle
Stellen Sie einfach sicher, dass Sie das binäre Zip-Archiv (apache-maven-3.5.0-bin.zip) anstelle des Quell-Zip-Archivs heruntergeladen haben. Fügen Sie dann das bin-Verzeichnis des erstellten Verzeichnisses apache-maven-3.5.0 zur Umgebungsvariablen PATH hinzu.
quelle
Beginnen Sie bei den meisten Maven-Setup-Problemen wie "Hauptklasse konnte nicht gefunden oder geladen werden ..." mit den folgenden Schritten, um festzustellen, ob das Problem behoben ist:
dann...
quelle
Ich hatte das gleiche Problem. Ich habe Windows XP-Box und als ich
mvn -version
an der Eingabeaufforderung tippte, bekam ich die gefürchtete FehlermeldungIch bestätigte, dass meine
M2_HOME
Variable auf den Pfad gesetzt war, in dem Maven auf dem PC installiert war, und dass dieecho %path%
bestätigt wurde, dass sich Maven in meinem Pfad befand.Ich habe stundenlang nach einer Lösung gesucht, als ich auf meine Lösung gestoßen bin (ich sage meine Lösung, weil ich weiß, dass dies wahrscheinlich nicht die Lösung für alle ist, die den gleichen Fehler erhalten).
Ich habe den Pfad kopiert, der meiner
M2_HOME
Variablen zugewiesen wurde . Ich öffnete ein Cmd-Fenster und tippte CD ein und fügte den Pfad ein, den ich von meinem bekamM2_HOME
Variablen erhalten hatte. Zu diesem Zeitpunkt wusste ich, dass der Pfad korrekt war, da der Pfad im Fenster angezeigt wurde. Zu diesem Zeitpunkt gab ich den Befehl dir ein und zu meiner Überraschung wurde der Fehler Datei nicht gefunden angezeigt.Ich bin über den Explorer zu diesem Pfad gegangen und sicher genug, dass Dateien vorhanden waren. Ich habe festgestellt, dass die Ordner ausgeblendet wurden, aber ich konnte darauf zugreifen und die Dateien in jedem Ordner anzeigen (ich habe Administratorrechte auf meinem PC). Ich habe mir die Eigenschaften des übergeordneten Ordners für Maven angesehen und festgestellt, dass das Kontrollkästchen Versteckt aktiviert ist. Ich entfernte die Prüfung und beantragte und versuchte meinen dir-Befehl erneut mit Erfolg.
Als nächstes habe ich den
mvn –version
Befehl erneut versucht , aber diesmal habe ich die erwarteten Ergebnisse zurückbekommen.Schließlich habe ich eine JAR- und WAR-Datei erstellt und meine Web-App wurde erfolgreich auf meinem lokalen Tomcat ausgeführt.
Ich hoffe, das hilft einigen von euch da draußen.
quelle
Die Installation der Binärversion von Maven behebt die Probleme
apache-maven-3.6.1-bin.zip
quelle
Abgesehen von dem, worauf @khmarbaise hingewiesen hat, haben Sie Ihr JAVA_HOME falsch geschrieben. Wenn Sie am Standardspeicherort installiert haben, sollte zwischen jdk und 1.7.0_04 kein "-" (Bindestrich) stehen. So wäre es
quelle
Vergessen Sie für andere Personen, die möglicherweise darauf stoßen, ~ / .mavenrc nicht, die Einstellungen für M2_HOME oder JAVA_HOME zu überprüfen.
quelle
Versuchen Sie, die binäre Zip-Datei (z. B. Maven 3.0.5 (binäre Zip-Datei)) anstelle der vollständigen Quelle auf der offiziellen Maven-Site herunterzuladen. Stellen Sie außerdem sicher, dass die Befehlszeile Java- und Java-Befehle erkennt. Ich bemerkte, dass Maven Source zip keine Bibliotheken im lib-Ordner enthielt, aber Binary zip hatte sie + im Boot-Ordner hatte es plexus-classworlds-2.4.jar. Vielleicht lag das Problem am Fehlen dieser Bibliotheken. Wie auch immer, es hat mir geholfen, also ist mein M2_HOME: C: \ Programme \ Java \ apache-maven-3.0.5 und bei PATH habe ich gesetzt: C: \ Programme \ Java \ apache-maven-3.0.5 \ bin.
quelle
Ich finde, dass dieses Problem in meinem centOS durch "Oracle Java wird durch gcj ersetzt" verursacht wird. Nachdem Sie das Standard-Java in "Oracle Java" geändert haben, ist das Problem behoben.
quelle
Es sieht so aus, als hätten Sie Quelldateien installiert (da diese
src
nur in Quelldateien enthalten sind und wir sie nicht benötigen). Versuchen Sie, Binärdateien von dort aus zu installieren . Und dann Umgebungsvariablen wie dort . Das hat bei mir funktioniert. Und ich bin sicher, dass es auch bei Ihnen funktionieren wird.quelle
Ich denke du lädst die falsche Version herunter. Ich treffe dieses Problem gerade jetzt, keine Methode Arbeit nach dem Suchen und Suchen. Schließlich fand ich heraus, dass der von mir heruntergeladene Maven das Quell-Zip-Archiv ist . Nachdem ich zum binären Zip-Archiv gewechselt habe , wird alles gut.
quelle
Auch ich stand vor dem ähnlichen Problem. In meinem Fall habe ich jedoch den Ordner apache-maven-3.3.3-src in Pfadvariablen verwendet. Später habe ich die mit dem korrekten Pfad des Ordners apache-maven-3.3.3-bin korrigiert. Dies löste das Problem. Ich sage nicht, dass dies der gleiche Fehler ist, der hier gemeldet wurde, aber auf diese Weise können Sie diesen Fehler auch erhalten und beheben. Das versuche ich hier zu sagen.
quelle
Öffnen Sie ein neues Terminal und führen Sie die folgenden Schritte aus
Geben Sie dann ein
Sie können dies so einstellen
./bash_profile
, dass es jedes Mal automatisch ausgeführt wird, wenn Sie das Terminal ausführenquelle
Genau der gleiche Fehler kann auch bei korrekten Einstellungen für Umgebungsvariablen auftreten, wenn Sie NUR das
bin
Verzeichnis in das Installationsverzeichnis kopieren . Es macht diewhich
Arbeit fein und Anfänger bleiben stecken.quelle
Ich hatte dieses Problem, als ich Maven 3.5.4 unter OpenJDK 11 unter Ubuntu verwendete. Das OpenJDK 11 unter Ubuntu ist eigentlich noch ein JDK10:
Ich habe OpenJDK von Oracle in /opt/jdk-11.0.1 installiert und Maven folgendermaßen ausgeführt:
Es funktioniert jetzt wie ein Zauber.
quelle
Ich hatte ein Problem mit dem todsicheren Plugin selbst. Die Rückkehr zu Version 2.6 hat bei mir funktioniert. Version 2.18 / 20 / 22.1 gab mir den Fehler. Jetzt habe ich Version 3.0.0-M1 des todsicheren Plugins ausprobiert und es funktioniert.
In todsicherem Plgin zwischen Version 2.6 und 3.0.0 stimmt also etwas nicht. Ich gehe davon aus, dass es als Standard etwas Hardcodiertes gibt, das nicht sollte.
quelle
Für mich, so lustig es klingt, hat es mir geholfen, einfach neu zu starten
eclipse
...quelle
Das hat bei mir funktioniert:
CMD-Ergebnis:
Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-24T20: 41: 47 + 02: 00) Maven home: C: \ apache-maven-3.6.0 \ bin ..
quelle
Ich habe auch den folgenden Fehler in meinem System (Mac) festgestellt
Fehler: Hauptklasse org.codehaus.plexus.classworlds.launcher.Launcher konnte nicht gefunden oder geladen werden
Nach einigem zufälligen Durchsuchen stieß ich auf den Link " http://maven.apache.org/install.html " ", der besagt, dass "JAVA_HOME" auf "/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/" gesetzt werden sollte. Inhalt / Home / jre ".
Als ich "JAVA_HOME" wie oben in ".bash_profile" angegeben geändert habe, hat der Befehl "mvn" funktioniert, aber der Befehl "javac -version" funktioniert nicht mehr.
Als ich den Befehl "javac -version" eingab, wurde der folgende Fehler angezeigt
Eine ausführbare Datei kann unter "/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/jre/bin/javac" (-1) nicht gefunden werden.
Daher habe ich mein "JAVA_HOME" auf "/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home" in ".bash_profile" zurückgesetzt und die folgende Zeile oben im Skript "mvn" hinzugefügt
export JAVA_HOME = / Library / Java / JavaVirtualMachines / jdk1.8.0_45.jdk / Contents / Home / jre
Jetzt funktionierten sowohl die Befehle "mvn" als auch "javac" ordnungsgemäß, aber nach sorgfältiger Beobachtung des mvn-Skripts konnte ich keinen Unterschied zwischen den folgenden Befehlen machen
/ Library / Java / JavaVirtualMachines / jdk1.8.0_45.jdk / Contents / Home / bin / java- Klassenpfad /Users/venkatarajeevmandava/Documents/Maven/apache-maven-3.6.1/boot/plexus-classworlds-2.6.0. jar -Dclassworlds.conf = / Benutzer / venkatarajeevmandava / Dokumente / Maven / apache-maven-3.6.1 / bin / m2.conf -Dmaven.home = / Benutzer / venkatarajeevmandava / Dokumente / Maven / apache-maven-3.6.1 - Dlibrary.jansi.path = / Users / venkatarajeevmandava / Documents / Maven / apache-maven-3.6.1 / lib / jansi-native -Dmaven.multiModuleProjectDirectory = / Users / venkatarajeevmandava / Documents / Maven / apache-maven-3.6.1 / bin org.codehaus.plexus.classworlds.launcher.Launcher
/ Library / Java / JavaVirtualMachines / jdk1.8.0_45.jdk / Contents / Home / jre / bin / java Klassenpfad /Users/venkatarajeevmandava/Documents/Maven/apache-maven-3.6.1/boot/plexus-classworlds-2.6. 0.jar -Dclassworlds.conf = / Benutzer / venkatarajeevmandava / Dokumente / Maven / apache-maven-3.6.1 / bin / m2.conf -Dmaven.home = / Benutzer / venkatarajeevmandava / Dokumente / Maven / apache-maven-3.6. 1 -Dlibrary.jansi.path = / Users / venkatarajeevmandava / Documents / Maven / apache-maven-3.6.1 / lib / jansi-native -Dmaven.multiModuleProjectDirectory = / Users / venkatarajeevmandava / Documents / Maven / apache-maven-3.6. 1 / bin org.codehaus.plexus.classworlds.launcher.Launcher
Oben hat der erste Befehl den folgenden Fehler verursacht
Fehler: Hauptklasse org.codehaus.plexus.classworlds.launcher.Launcher konnte nicht gefunden oder geladen werden
während der zweite Befehl gut funktionierte. Bitte beachten Sie, dass beide oben genannten Pfade den Befehl "java" haben, während einer von "jre" stammt, der andere von "jdk".
Andere globale Variablen lauten wie folgt in ".bash_profile"
export M2_HOME = / Users / venkatarajeevmandava / Documents / Maven / apache-maven-3.6.1
export PATH = $ PATH: $ M2_HOME / bin
quelle
Dies ist ein häufiges Problem beim Einrichten von Maven. Alles was Sie tun müssen, ist das Folgende: -
M2_HOME & M2: - müssen als Systemvariablen und nicht als USER / ADMIN-Variablen deklariert werden.
Pfad: - Dies kann die Systemvariable ODER die USER / ADMIN-Variable [PATH] sein. Vorzugsweise Systemvariable.
Sobald Sie die Einstellung dieser 3 Variablen sorgfältig vorgenommen haben, können Sie die Installation von Maven wie folgt überprüfen.
Auf CMD-Eingabeaufforderung: -
C: \ Dokumente und Einstellungen \ ADMIN> mvn --version
Ausgabe :-
Apache Maven 2.0.11 (r909250; 2010-02-12 11: 25: 50 + 0530) Java-Version: 1.6.0_22 Java-Startseite: C: \ Programme \ Java \ jdk1.6.0_22 \ jre Standardgebietsschema: en_US, Plattform Codierung: Cp1252 Betriebssystemname: "windows xp" Version: "5.1" arch: "x86" Familie: "windows"
Vielen Dank.
quelle
Neben den vielleicht nützlichen, aber vielleicht zu symptomatischen Antworten ist hier eine, die versucht, die Ursache des Problems zu finden.
Maven ist ein Befehlszeilen-Java-Tool. Das heißt, es ist keine eigenständige Binärdatei, sondern eine Sammlung von Java
.jar
s, die von einem JVM interpretiert wird (java.exe
unter Windows,java
unter Linux).Der
mvn
Befehl ist ein Skript. Unter Windows ist es ein Skript namensmvn.cmd
und unter Linux ein Shell-Skript. Wenn Sie also schreiben:,mvn install
was wird passieren:/bin/sh
odercmd.exe
) aufgerufenDas Problem ist mit (2). Glücklicherweise ist dieses Skript einfach sehr einfach. Für einen Java-Programmierer sollte es kein großes Problem sein, ein Skript mit etwa 20 Zeilen zu debuggen, auch wenn es sich um eine etwas fremde Sprache handelt.
Unter Linux können Sie Shellskripte debuggen und
-x
Ihrem Shell-Interpreter das Flag geben (was höchstwahrscheinlich der Fall istbash
). Unter Windows müssen Sie einen anderen Weg finden, um eincmd.exe
Skript zu debuggen .mvn install
Geben Sie also stattdessen den Befehlbash -x mvn install
.Das Ergebnis ist wie folgt:
... nicht so viele Dinge ...
Am Ende können Sie leicht testen, welche Umgebungsvariable fehlerhaft geworden ist, und Sie können Ihr Skript sehr einfach reparieren (oder festlegen, was benötigt wird).
quelle