Maven-Fehler: Hauptklasse org.codehaus.plexus.classworlds.launcher.Launcher konnte nicht gefunden oder geladen werden

136

Ich habe eine neueste maven-3.0.4Version 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_HOMEUmgebungsvariablen 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.

Manofsins
quelle
4
Gerade Binär heruntergeladen zipund es war kaputt. Ersetzt durch .tar.gzund es funktioniert. Wenn M2_HOMEalso richtig eingestellt ist, versuchen Sie wirklich zu überprüfen, ob das, was Sie heruntergeladen haben, korrekt ist.
Pavel Horal
@ PavelHoral das gleiche ist mir passiert
Hoaphumanoid
Ich bekomme diesen Fehler nur auf diesen Jenkins, über einen Befehl wie mvn compile funktioniert einwandfrei!
Nullpointer

Antworten:

141

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

Ian
quelle
26
Das gleiche gilt für mich auf einem Mac. Stellen Sie sicher, dass Sie M2_HOME
Luke
Arbeitete mit Maven 3.3.3 Binär unter Ubuntu. JAVA_HOME ist nicht gesetzt.
TFuto
2
Dies funktioniert ab Mac OS 10.10.5 mit installiertem Brew Maven (3.3.3).
Jeremiah
@ Luke Danke! unset M2_HOME.
Jared Burrows
5
Diese Lösung funktioniert, aber nicht aus den Gründen, die Sie vielleicht denken. Das Problem, wie in einigen angegeben der Kommentare des genannten Artikels, ist das nicht M3_HOME stattdessen benötigt wird, sondern vielmehr , dass M2_HOME ist falsch definiert. Es scheint, dass M3_HOME überhaupt nicht verwendet wird. Im Grunde genommen wird beim Löschen von M2_HOME die Standardeinstellung verwendet.
Matt
64

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

dirbacke
quelle
1
Ich habe die Quelle absichtlich heruntergeladen , da dies die traditionelle Vorgehensweise ist, aber ich habe versehentlich die Anweisungen für die Binärinstallation befolgt. Das einfache Kopieren des binären Teers war auf lange Sicht tatsächlich einfacher.
MDMoore313
+1: Das Gleiche ist hier passiert - versehentlich auf den falschen Download-Link geklickt. Funktioniert nicht, dass ich die richtige Zip-Datei habe!
Laura Ritchey
Dies hat das Problem im Alleingang für mich behoben - danke!
Liran H
Wahr. Quelldateien heruntergeladen und versucht, M3_HOME zu aktualisieren, aber nicht funktioniert. Binärdateien funktionieren gut.
Rohit
Hatte mir das gerade passiert? Die Website ist unklar, auf welcher Website.
frodo2975
60

Ich hatte das gleiche Problem und konnte es lösen, indem ich die Umgebungsvariablen sorgfältig wiederholte:

  • M2_HOME
  • M2
  • JAVA_HOME

Auch ich machte sie alle System - Variablen, nicht Benutzervariablen wie die Maven Anweisungen sagen. Wenn du

echo %Path%

Stellen Sie sicher, dass die Variablen% M2% und% JAVA_HOME% vollständig erweitert sind, dh:

C:\Users\afairchild>echo %Path%
C:\Program Files\Apache Software Foundation\apache-maven-3.0.4\bin;C:\Program Files\Java\jdk1.7.0_09\bin; [etc]
Alex Fairchild
quelle
M2_HOME überprüft als erstes, ob Sie ein Upgrade durchführen. JAVA_HOME sollte unverändert bleiben.
Joe Leo
3
Wie wird die M2Umgebungsvariable verwendet? Ich habe nur JAVA_HOMEund M2_HOME.
Kevin Meredith
1
@ KevinMeredith: Die M2Umgebungsvariable 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-Batchdatei mvn.batnicht in den %Path%definierten Standardeinträgen gefunden werden kann . Ein typischer Anwendungsfall wäre ein nicht standardmäßiges Installationsverzeichnis für Maven.
Moreaki
@Alex Ich bekomme diesen Fehler nur auf diesen Jenkins, über einen Befehl wie mvn compile funktioniert einwandfrei!
Nullpointer
49

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:

export M2_HOME=/usr/share/maven
Joseph Lust
quelle
2
Es hat bei mir funktioniert, aber mit M2_HOME = / usr / share / maven2 (falls es jemand anderes versucht). Vielen Dank!
Jimkont
1
Erstellen Sie unter Ubuntu besser /etc/profile.d/maven.sh mit dem Befehl, auf den Sie hingewiesen haben : export M2_HOME=/usr/share/maven. Wie @jimkont zeigte, ist manchmal maven2 oder maven3 (wenn Sie natürlich maven3 installiert haben).
Rael Gugelmin Cunha
Es klappt. Vielen Dank. Aber können wir es einfach zur Datei / etc / environtment hinzufügen?
Karthik
34

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:

M2_HOME C: \ apache-maven-3.0.4 \ apache-maven \ src

Geben Sie hier die Bildbeschreibung ein

saravp
quelle
Das hat bei mir funktioniert. Folgen Sie der Anleitung hier: maven.apache.org/install.html und setzen Sie Ihre System-PATH-Variable mit C: \ apache-maven-3.6.3 \ bin
ChrisE
21

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.

jdmidtun
quelle
Danke meins auch behoben. Warum können Sie den src-Download jedoch nicht auch verwenden, solange er die richtige ausführbare Datei im bin-Verzeichnis enthält?
Java123999
13

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_HOMEwar

D:\workspace\apache-maven-3.1.0-bin\apache-maven-3.1.0\bin

und dann habe ich es chaged

D:\workspace\apache-maven-3.1.0-bin\apache-maven-3.1.0

Ich möchte erwähnen, dass ich Windows 7 (x64) verwende.

Adelin
quelle
Ich bekomme diesen Fehler nur auf diesen Jenkins, über einen Befehl wie mvn compile funktioniert einwandfrei!
Nullpointer
6

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 pageFolgendes 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.

JESii
quelle
4

Sie sollten den Speicherort des M2_HOME wie folgt ändern:

set M2_HOME=C:\apache-maven-3.0.4\apache-maven

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.

khmarbaise
quelle
Danke, aber ich habe sowohl jdk als auch jre. Sie können sehen, dass ich JAVA_HOME als C: \ Programme \ Java \ jdk1.7.0_04 angegeben habe. Und wenn ich den von Ihnen angegebenen Pfad für M2_HOME gebe, erkennt der cmd den Befehl 'mvn' nicht einmal.
Manofsins
Sie ändern das M2_HOME wie beschrieben, es fügt Ihrem Pfad das% M2_HOME% \ bin hinzu, das zum Aufrufen des Befehls mvn erforderlich ist.
Khmarbaise
4

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_profilesah so aus

export M2_HOME=/Users/xyz/maven-3.x/bin
export PATH=$PATH:$M2_HOME

und wenn ich es echo M2_HOMEvom Terminal aus versuchte , zeigte es mir den richtigen Pfad, aber wenn ich versuchte, einen Maven-Befehl wie mvn cleanoder abzufeuern mvn install, gab es immer das gleiche Problem

Hauptklasse org.codehaus.plexus.classworlds.launcher.Launcher konnte nicht gefunden oder geladen werden

Ich löste dieses Problem durch meinen Wechsel M2_HOMEzu diesem

export M2_HOME=/Users/xyz/maven-3.x
export PATH=$PATH:$M2_HOME/bin

Und voila! Es fing an zu arbeiten! Verschieben Sie einfach die Position von /binvon M2_HOME nach vorPATH

Saif Asif
quelle
3

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.

Shaini Sinha
quelle
3

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:

  • Stellen Sie sicher, dass Sie das richtige Archiv entpackt haben (BINARY-Archiv und nicht SOURCE-Archiv).
  • Entfernen Sie alle Benutzer- und Systemvariablen, die sich auf Maven beziehen (z. B. M2_HOME, M2_OPTS usw.).
  • Stellen Sie sicher, dass die Systemvariable JAVA_HOME eingerichtet ist (z. B. "C: \ Programme \ Java \ jdk1.8.0_172").
  • Stellen Sie sicher, dass der Java-Bin-Speicherort in der Systemvariablen "Pfad" hinzugefügt ist (z. B. "% JAVA_HOME% \ bin").
  • Stellen Sie sicher, dass der Speicherort des Maven-Bin in der Systemvariablen "Pfad" hinzugefügt ist (z. B. "C: \ MyInstalls \ apache-maven-3.5.4 \ bin").

dann...

  • Überprüfen Sie, ob Java eingerichtet ist (bei Eingabeaufforderung: Java-Version)
  • Überprüfen Sie, ob der Maven eingerichtet ist (bei Eingabeaufforderung: mvn --version)
Sreekanth
quelle
2

Ich hatte das gleiche Problem. Ich habe Windows XP-Box und als ich mvn -versionan der Eingabeaufforderung tippte, bekam ich die gefürchtete Fehlermeldung

"Exception in thread "main" java.lang.NoClassDefFoundError: org/codehaus/plexus/classworlds/launcher/Launcher"

Ich bestätigte, dass meine M2_HOMEVariable 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_HOMEVariablen 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 –versionBefehl erneut versucht , aber diesmal habe ich die erwarteten Ergebnisse zurückbekommen.

C:\>mvn -version
Apache Maven 3.0.3 (r1075438; 2011-02-28 11:31:09-0600)
Maven home: C:\Program Files\apache-maven-3.0.3
Java version: 1.5.0_16, vendor: Sun Microsystems Inc.
Java home: C:\Java\jdk1.5.0_16\jre
Default locale: en_US, platform encoding: Cp1252
OS name: "windows xp", version: "5.1", arch: "x86", family: "windows"

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.

Lou
quelle
2

Die Installation der Binärversion von Maven behebt die Probleme

apache-maven-3.6.1-bin.zip

Bharath Kumar
quelle
1

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

JAVA_HOME C:\Program Files\Java\jdk1.7.0_04 
Raghuram
quelle
Danke, aber leider habe ich es hier nur falsch geschrieben und es war das gleiche, wie Sie gesagt haben, "ohne Bindestrich".
Manofsins
1

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.

JBCP
quelle
1

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.

Shendor
quelle
1

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.

alternatives --config java

There are 2 programs which provide 'java'.

  Selection    Command
-----------------------------------------------
*  1           /usr/lib/jvm/jre-1.5.0-gcj/bin/java
 + 2           /usr/java/jdk1.7.0_67/bin/java
wu liang
quelle
1

Es sieht so aus, als hätten Sie Quelldateien installiert (da diese srcnur 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.

Hammad Hassan
quelle
1

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.

Mithril
quelle
Ich wollte das gerade posten. Dies ist genau das Problem, mit dem ich konfrontiert war. Wenn ich nur Ihre Antwort gelesen hätte, hätte sie mir 30 Minuten gespart.
Bartho Bernsmann
1

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.

Vinoth Kumar
quelle
1

Öffnen Sie ein neues Terminal und führen Sie die folgenden Schritte aus

M2_HOME=/Users/macbook/apache-maven-3.6.1 //Set where maven is
M2=$M2_HOME/bin                          //Set home as bin
export PATH=$M2:$PATH                   //Place the new path

Geben Sie dann ein

mvn -version

Sie können dies so einstellen ./bash_profile, dass es jedes Mal automatisch ausgeführt wird, wenn Sie das Terminal ausführen

Gastón Saillén
quelle
0

Genau der gleiche Fehler kann auch bei korrekten Einstellungen für Umgebungsvariablen auftreten, wenn Sie NUR das binVerzeichnis in das Installationsverzeichnis kopieren . Es macht die whichArbeit fein und Anfänger bleiben stecken.

Dytori
quelle
0

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:

$ ls -al /etc/alternatives/java
lrwxrwxrwx 1 root root 43 Aug 24 04:54 /etc/alternatives/java -> /usr/lib/jvm/java-11-openjdk-amd64/bin/java
$ java --version
openjdk 10.0.2 2018-07-17
OpenJDK Runtime Environment (build 10.0.2+13-Ubuntu-1ubuntu0.18.04.3)
OpenJDK 64-Bit Server VM (build 10.0.2+13-Ubuntu-1ubuntu0.18.04.3, mixed mode)

Ich habe OpenJDK von Oracle in /opt/jdk-11.0.1 installiert und Maven folgendermaßen ausgeführt:

JAVA_HOME=/opt/jdk-11.0.1 mvn

Es funktioniert jetzt wie ein Zauber.

Christian Hujer
quelle
0

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.

Coolius
quelle
0

Für mich, so lustig es klingt, hat es mir geholfen, einfach neu zu starten eclipse...

Mitgliedssound
quelle
0

Das hat bei mir funktioniert:

  1. Entfernen Sie alle Mavin-Referenzen in Umgebungsvariablen
  2. Laden Sie die Binärdatei herunter von mavin herunter
  3. Entpacken Sie es an die gewünschte Stelle, z. B.: C: \ apache-maven-3.6.0
  4. Gehen Sie zu Umgebungsvariablen und fügen Sie sie dem System hinzu - Variable Pfad "C: \ Apache-maven-3.6.0 \ ist"
  5. Starten Sie die Eingabeaufforderung als Administrator
  6. Version überprüfen mit: mvn -v

CMD-Ergebnis:

Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-24T20: 41: 47 + 02: 00) Maven home: C: \ apache-maven-3.6.0 \ bin ..

Aberaitius
quelle
0

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

Venkata Rajeev
quelle
-1

Dies ist ein häufiges Problem beim Einrichten von Maven. Alles was Sie tun müssen, ist das Folgende: -

  1. M2_HOME: - D: \ apache-maven-2.0.11
  2. M2: - D: \ apache-maven-2.0.11 \ bin
  3. Pfad: - Fügen Sie ihn hinzu mit;% M2%

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.

HMB
quelle
-1

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 .jars, die von einem JVM interpretiert wird ( java.exeunter Windows, javaunter Linux).

Der mvnBefehl ist ein Skript. Unter Windows ist es ein Skript namens mvn.cmdund unter Linux ein Shell-Skript. Wenn Sie also schreiben:, mvn installwas wird passieren:

  1. Für das tatsächlich aufrufende Skript wird ein Befehlsinterpreter ( /bin/shoder cmd.exe) aufgerufen
  2. Dieses Skript legt die erforderlichen Umgebungsvariablen fest
  3. und schließlich ruft es einen Java-Interpreter mit dem erforderlichen Klassenpfad auf, der die Maven-Funktionalität enthält.

Das 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 -xIhrem Shell-Interpreter das Flag geben (was höchstwahrscheinlich der Fall ist bash). Unter Windows müssen Sie einen anderen Weg finden, um ein cmd.exeSkript zu debuggen . mvn installGeben Sie also stattdessen den Befehl bash -x mvn install.

Das Ergebnis ist wie folgt:

+ '[' -z '' ']'
+ '[' -f /etc/mavenrc ']'
+ '[' -f /home/picsa/.mavenrc ']'
+ cygwin=true
+ darwin=false

... nicht so viele Dinge ...

+ MAVEN_PROJECTBASEDIR='C:\peter\bin'
+ export MAVEN_PROJECTBASEDIR
+ MAVEN_CMD_LINE_ARGS=' '
+ export MAVEN_CMD_LINE_ARGS
+ exec '/cygdrive/c/Program Files/Java/jdk1.8.0_66/bin/java' -classpath 'C:\peter/boot/plexus-classworlds-*.jar' '-Dclassworlds.conf=C:\peter/bin/m2.conf' '-Dmaven.home=C:\peter' '-Dmaven.multiModuleProjectDirectory=C:\peter\bin' org.codehaus.plexus.classworlds.launcher.Launcher
Fehler: Hauptklasse org.codehaus.plexus.classworlds.launcher.Launcher konnte nicht gefunden oder geladen werden

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).

Peter - Setzen Sie Monica wieder ein
quelle