Błąd Mavena: nie można znaleźć lub załadować głównej klasy org.codehaus.plexus.classworlds.launcher.Launcher

136

Zainstalowałem najnowszą wersję maven-3.0.4w systemie Windows 7 :
Szczegóły instalacji są następujące:
Ścieżka instalacji:

C:\apache-maven-3.0.4  

Zmienne środowiskowe to:

M2_HOME C:\apache-maven-3.0.4\apache-maven\src  
JAVA_HOME C:\Program Files\Java\jdk-1.7.0_04  

Dodane zmienne ścieżki to:

%M2_HOME%\bin;%JAVA_HOME%\bin;

W oknie poleceń pokazuje to tak:

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  

To jedyna wersja na maven zainstalowana na moim komputerze i rozwiązanie podane na wielu blogach, odnoszące się do usunięcia poprzedniej M2_HOMEzmiennej środowiskowej, jest nieważne.

Przeczytałem i wypróbowałem wszystkie rozwiązania podane na blogach takie jak:

ale nadal nie mogę się do tego dostać. Czego w tym wszystkim może brakować? Z góry dziękuję.

manofsins
źródło
4
Właśnie pobrałem plik binarnyzip i został uszkodzony. Zastąpiony.tar.gz i działa. Więc kiedy M2_HOMEjest ustawiony poprawnie, naprawdę spróbuj sprawdzić, czy to, co pobrałeś, jest poprawne.
Pavel Horal
@PavelHoral to samo stało się ze mną
hoaphumanoid
Ten błąd pojawia się tylko na tym jenkinsie, za pomocą polecenia takiego jak kompilacja mvn działa dobrze!
Nullpointer

Odpowiedzi:

141

Trafiłem też na ten problem i znalazłem ten artykuł. W przypadku Maven3 zmiana nazwy zmiennej środowiskowej z M2_HOME na M3_HOME załatwiła sprawę. Używam komputera Mac z systemem OSX 10.9 z JDK 1.7. Mam nadzieję że to pomoże.

Uwaga: usuń M2_HOME, jeśli jest już ustawiony. Na przykład:unset M2_HOME

Ian
źródło
26
To samo dla mnie na Macu. Upewnij się, że usunąłeś M2_HOME
Luke
Pracował z binarnym Maven 3.3.3 na Ubuntu. JAVA_HOME nie jest ustawiona.
TFuto
2
Działa to od systemu Mac OS 10.10.5 z zainstalowanym programem brew Maven (3.3.3).
Jeremiah
@Luke Dziękuję! unset M2_HOME.
Jared Burrows
5
To rozwiązanie działa, ale nie z powodów, które możesz pomyśleć. Problem, jak wskazano na niektóre z komentarzy na wskazanym artykule, nie jest to, że zamiast M3_HOME jest potrzebna, ale raczej, że M2_HOME jest nieprawidłowo zdefiniowany. Wygląda na to, że M3_HOME w ogóle nie jest używane, więc w zasadzie to, co się dzieje, jest domyślnie używane podczas usuwania M2_HOME.
Matt
64

Pomimo odpowiedzi na pytanie, chciałbym dodać, że jeśli otrzymujesz powyższy błąd, upewnij się, że pobrałeś plik binarny .

Plik źródłowy należy pobrać tylko wtedy, gdy jesteś zaawansowanym użytkownikiem i wiesz, jak sobie z nim radzić.

Miałem sporo osób pobierających zły plik, seniorów i juniorów

dirbacke
źródło
1
Właściwie pobrałem źródło celowo , ponieważ jest to tradycyjny sposób robienia rzeczy, ale przypadkowo wykonałem instrukcje dotyczące instalacji binarnej. Samo skopiowanie pliku binarnego było na dłuższą metę łatwiejsze.
MDMoore313
+1: To samo stało się tutaj - przypadkowo kliknięto niewłaściwy link do pobrania. Nie działa, że ​​mam odpowiedni plik zip!
Laura Ritchey
To samodzielnie rozwiązało problem - dziękuję!
Liran H
Prawdziwe. Pobrano pliki źródłowe i próbowałem zaktualizować M3_HOME, ale nie zadziałało. Pliki binarne działają dobrze.
Rohit
Właśnie mi się to przytrafiło. Witryna nie jest jasna, na której ma być używana.
frodo2975
60

Miałem ten sam problem i udało mi się go rozwiązać, ostrożnie przerabiając zmienne środowiskowe:

  • M2_HOME
  • M2
  • JAVA_HOME

Ponadto stworzyłem je wszystkie zmienne systemowe , a nie zmienne użytkownika, jak mówią instrukcje Mavena. Kiedy ty

echo %Path%

Upewnij się, że zmienne% M2% i% JAVA_HOME% są całkowicie rozwinięte, tj .:

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
źródło
M2_HOME jest pierwszą rzeczą, którą należy sprawdzić, czy aktualizujesz. JAVA_HOME powinno pozostać niezmienione.
Joe Leo,
3
W jaki sposób M2używana jest zmienna środowiskowa? Mam tylko JAVA_HOMEi M2_HOME.
Kevin Meredith
1
@KevinMeredith: M2zmienna środowiskowa jest czasami używana do wskazania %M2_HOME\bin%ścieżki, która z kolei jest następnie dodawana do %Path%zmiennej środowiskowej. Jest to potrzebne, gdy mvn.batnie można znaleźć pliku wsadowego Maven w %Path%zdefiniowanych standardowych wpisach. Typowym przypadkiem użycia byłby niestandardowy katalog instalacyjny Mavena.
Moreaki,
@Alex Otrzymuję ten błąd tylko na tym jenkinsie, za pomocą polecenia takiego jak kompilacja mvn działa dobrze!
Nullpointer
49

Wystąpił ten problem w dwóch różnych instalacjach Ubuntu 12.04, mimo że instalacje były wykonywane przez apt-get. Problem był M2_HOME.

Naprawiono za pomocą:

export M2_HOME=/usr/share/maven
Joseph Lust
źródło
2
U mnie zadziałało, ale z M2_HOME = / usr / share / maven2 (na wypadek, gdyby ktoś inny spróbował). Dzięki!
jimkont
1
Na Ubuntu, lepiej stworzyć /etc/profile.d/maven.sh z poleceniem, które wskazał: export M2_HOME=/usr/share/maven. Jak wskazał @jimkont, czasami jest to maven2 lub maven3 (jeśli oczywiście zainstalowałeś maven3).
Rael Gugelmin Cunha
To działa. Dzięki. Ale czy możemy go po prostu dodać do pliku / etc / environtment?
karthik
35

Uważam, że ten błąd spowodowany jest pobieraniem SRC zamiast BINARY ze strony Maven. Upewnij się, że pobierasz plik Binary zip.

Ponieważ poniższą ścieżkę otrzymasz dopiero po pobraniu SRC:

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

wprowadź opis obrazu tutaj

saravp
źródło
To zadziałało dla mnie. Postępuj zgodnie z przewodnikiem tutaj: maven.apache.org/install.html i ustaw zmienną PATH systemu na C: \ apache-maven-3.6.3 \ bin
ChrisE
21

Wygląda na to, że zainstalowałeś (rozpakowałeś) pliki źródłowe zamiast plików binarnych na podstawie informacji o ścieżce. Spróbuj zamiast tego zainstalować pliki binarne i postępować zgodnie z odpowiedziami innych plakatów.

jdmidtun
źródło
Dzięki naprawiłem też moje. Jednak dlaczego nie możesz również użyć pobierania src, jeśli zawiera on poprawny plik wykonywalny w katalogu bin dir?
java123999
13

Cóż, miałem ten problem i po obejrzeniu tego posta, a zwłaszcza odpowiedzi khmarbaise, zauważyłem, że M2_HOMEtak

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

a potem zdecydowałem się na to

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

Chciałbym wspomnieć, że używam Windows 7 (x64)

Adelin
źródło
Ten błąd pojawia się tylko na tym jenkinsie, za pomocą polecenia takiego jak kompilacja mvn działa dobrze!
Nullpointer
6

Rozwiązanie dla późniejszych wersji Maven jest proste. Jestem na OS X ElCap, 10.11.6 i zaktualizowałem do Maven 3.3.9. Miałem ten sam problem z błędem „ Could not find ...org.codehaus.plexus...”. Podany tutaj link oferował rozwiązanie w komentarzu McKameya - po prostu usuń M2_HOME (unset M2_HOME ). Kiedy już tego spróbowałem, wszystko działało zgodnie z oczekiwaniami.

Można to potwierdzić odwiedzając Maven install page: „Dodaj katalog bin utworzonego katalogu apache-maven-3.3.9 do zmiennej środowiskowej PATH” - w ogóle nie ma wzmianki o M2_HOME lub M3_HOME.

JESii
źródło
4

Powinieneś zmienić lokalizację M2_HOME na następującą:

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

Ponadto instalacja JDK wygląda bardziej jak JRE zamiast JDK. Do Mavena potrzebujesz JDK, a NIE JRE.

khmarbaise
źródło
Dzięki, ale mam zarówno jdk, jak i jre. Widać, że podałem JAVA_HOME jako C: \ Program Files \ Java \ jdk1.7.0_04. A jeśli podam ścieżkę do M2_HOME, którą podałeś, cmd nawet nie rozpozna polecenia „mvn”.
manofsins
Zmieniasz M2_HOME, tak jak opisałem, dodasz% M2_HOME% \ bin do twojej ścieżki, która jest potrzebna do wywołania polecenia mvn.
khmarbaise
4

Natknąłem się na podobny problem na moim Mac OSX. Po serii prób i błędów w końcu rozwiązałem problem.

Mój ~/.bash_profilewyglądał tak

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

a kiedy próbowałem echo M2_HOMEz terminalu, pokazywał mi poprawną ścieżkę, ale kiedy próbowałem odpalić jakąkolwiek komendę maven, taką jak mvn cleanlub mvn install, zawsze dawało ten sam problem

Nie można znaleźć lub załadować głównej klasy org.codehaus.plexus.classworlds.launcher.Launcher

Rozwiązałem ten problem, zmieniając mój M2_HOMEna ten

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

I voila! Zaczęło działać! Po prostu przesuwając pozycję /binz M2_HOME na przedPATH

Saif Asif
źródło
3

Po prostu upewnij się, że pobrałeś binarne archiwum zip (apache-maven-3.5.0-bin.zip) zamiast źródłowego archiwum zip. Następnie dodaj katalog bin utworzonego katalogu apache-maven-3.5.0 do zmiennej środowiskowej PATH.

Shaini Sinha
źródło
3

W przypadku większości problemów z konfiguracją Mavena, takich jak „Nie można znaleźć lub załadować klasy głównej ...”, zacznij od poniższych kroków, aby sprawdzić, czy to rozwiązuje:

  • Upewnij się, że rozpakowałeś właściwe archiwum (archiwum BINARY, a nie archiwum SOURCE)
  • Usuń wszystkie zmienne użytkownika i systemowe związane z Maven (np. M2_HOME, M2_OPTS itp.)
  • Upewnij się, że zmienna systemowa JAVA_HOME jest skonfigurowana (np. „C: \ Program Files \ Java \ jdk1.8.0_172”)
  • Upewnij się, że lokalizacja bin java została dodana do zmiennej systemowej „path” (np. „% JAVA_HOME% \ bin”)
  • Upewnij się, że lokalizacja bin maven została dodana do zmiennej systemowej „path” (np. „C: \ MyInstalls \ apache-maven-3.5.4 \ bin”)

następnie...

  • Sprawdź, czy Java jest skonfigurowana (w commandprompt: java -version)
  • Sprawdź, czy Maven jest skonfigurowany (w commandprompt: mvn --version)
Sreekanth
źródło
2

Miałem ten sam problem. Mam pudełko z systemem Windows XP i kiedy pisałem mvn -versionw wierszu poleceń, otrzymałem przerażający komunikat o błędzie

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

Potwierdziłem, że moja M2_HOMEzmienna została ustawiona na ścieżkę, w której Maven został zainstalowany na komputerze i żeecho %path% potwierdził, że Maven jest na mojej ścieżce.

Szukałem rozwiązania godzinami, kiedy natknąłem się na moje rozwiązanie (mówię moje rozwiązanie, ponieważ wiem, że prawdopodobnie nie będzie to rozwiązanie dla wszystkich, którzy otrzymują ten sam błąd).

Skopiowałem ścieżkę przypisaną do mojej M2_HOMEzmiennej. Otworzyłem okno cmd, wpisałem cd i wkleiłem ścieżkę, którą otrzymałem z mojegoM2_HOME zmiennej. W tym momencie wiedziałem, że ścieżka jest poprawna, ponieważ została wyświetlona w oknie. W tym momencie wszedłem do polecenia dir i ku mojemu zaskoczeniu otrzymałem błąd File Not Found.

Poszedłem do tej ścieżki przez Eksploratora i na pewno były tam pliki. Zauważyłem, że foldery zostały wyblakłe, ale mogłem uzyskać do nich dostęp i zobaczyć pliki w każdym folderze (mam uprawnienia administratora na moim komputerze). Spojrzałem na właściwości folderu nadrzędnego dla Mavena i zobaczyłem, że pole Ukryte jest zaznaczone. Usunąłem czek, zastosowałem i ponownie z powodzeniem wypróbowałem polecenie dir.

Następnie mvn –versionponownie wypróbowałem polecenie, ale tym razem otrzymałem oczekiwane wyniki.

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"

W końcu utworzyłem plik jar i war, a moja aplikacja internetowa działała pomyślnie na moim lokalnym Tomcacie.

Mam nadzieję, że to pomoże niektórym z was.

Lou
źródło
2

zainstaluj binarną wersję maven rozwiązuje problemy

apache-maven-3.6.1-bin.zip

Bharath Kumar
źródło
1

Poza tym, co wskazał @khmarbaise, myślę, że błędnie wpisałeś swój JAVA_HOME. Jeśli instalacja została przeprowadzona w domyślnej lokalizacji, nie powinno być znaku „-” (łącznika) między jdk a 1.7.0_04. Tak by się stało

JAVA_HOME C:\Program Files\Java\jdk1.7.0_04 
Raghuram
źródło
Dzięki, ale niestety błędnie wpisałem to tylko tutaj i było tak samo, jak powiedziałeś, „bez myślnika”.
manofsins
1

Dla innych osób, które mogą się na to natknąć, nie zapomnij sprawdzić ~ / .mavenrc pod kątem ustawień M2_HOME lub JAVA_HOME.

JBCP
źródło
1

Spróbuj pobrać binarny zip (np. Maven 3.0.5 (Binary zip)) zamiast pełnego źródła z oficjalnej strony Mavena. Upewnij się również, że wiersz poleceń rozpoznaje polecenia Java i javac. Zauważyłem, że zip Maven Source nie zawierał żadnych bibliotek w folderze lib, jednak Binary zip miał je + w folderze rozruchowym, który miał plexus-classworlds-2.4.jar. Być może problem polegał na braku tych bibliotek. W każdym razie pomogło mi to, więc mój M2_HOME to: C: \ Program Files \ Java \ apache-maven-3.0.5, aw PATH umieściłem: C: \ Program Files \ Java \ apache-maven-3.0.5 \ bin.

Shendor
źródło
1

Uważam, że ten problem w moim centOS jest spowodowany przez „Oracle Java jest zastępowana przez gcj”, po zmianie domyślnej javy na „Oracle Java” problem został rozwiązany.

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
źródło
1

Wygląda na to, że zainstalowałeś pliki źródłowe (ponieważ jest dostępny srctylko w plikach źródłowych i nie potrzebujemy go). Spróbuj zainstalować pliki binarne z tam . A następnie ustawić zmienne środowiskowe jak opisano tam . To zadziałało dla mnie. I jestem pewien, że zadziała również dla Ciebie.

Hammad Hassan
źródło
1

Myślę, że pobierasz niewłaściwą wersję. Właśnie spotykam się z tym problemem, żadna metoda nie działa po wyszukiwaniu i wyszukiwaniu. Wreszcie odkryłem, że pobrane przeze mnie maven to źródłowe archiwum zip . Po przejściu do binarnego archiwum zip wszystko jest w porządku.

Mithril
źródło
Właśnie miałem to opublikować. Właśnie z tym problemem się spotkałem. Gdybym tylko przeczytał Twoją odpowiedź, zaoszczędziłoby mi to 30 minut.
Bartho Bernsmann
1

Ja też stanąłem przed podobnym problemem. Ale w moim przypadku użyłem folderu apache-maven-3.3.3-src w zmiennych ścieżkowych. Później poprawiłem te z poprawną ścieżką do folderu apache-maven-3.3.3-bin. To rozwiązało problem. Nie mówię, że jest to ten sam błąd zgłoszony tutaj, ale w ten sposób również możesz uzyskać ten błąd i naprawić go. To właśnie próbuję tutaj powiedzieć.

Vinoth Kumar
źródło
1

Otwórz nowy terminal i wykonaj następujące czynności

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

Następnie wpisz

mvn -version

Możesz to ustawić tak, ./bash_profileaby robił to automatycznie przy każdym uruchomieniu terminala

Gastón Saillén
źródło
0

Dokładnie ten sam błąd może pojawić się nawet przy prawidłowych ustawieniach zmiennych środowiskowych, jeśli skopiujesz TYLKO binkatalog do katalogu instalacyjnego. To sprawia, że whichdziała dobrze, a nowicjusze utkną.

dytori
źródło
0

Miałem ten problem, gdy używałem Maven 3.5.4 na OpenJDK 11 na Ubuntu. OpenJDK 11 na Ubuntu to właściwie nadal 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)

Zainstalowałem OpenJDK z Oracle w /opt/jdk-11.0.1 i uruchomiłem Mavena w ten sposób:

JAVA_HOME=/opt/jdk-11.0.1 mvn

Teraz działa jak urok.

Christian Hujer
źródło
0

Miałem problem z samą wtyczką surefire. Powrót do wersji 2.6 działał dla mnie. Wersja 2.18 / 20 / 22.1 dała mi błąd. Teraz wypróbowałem wersję 3.0.0-M1 pewnej wtyczki i działa.

Więc coś jest nie tak w pewnej wersji pomiędzy wersjami 2.6 i 3.0.0. Zakładam, że domyślnie jest zakodowane na stałe coś, co nie powinno.

Coolius
źródło
0

Dla mnie, choć brzmi to zabawnie, pomogło po prostu zrestartować eclipse...

Membersound
źródło
0

To zadziałało dla mnie:

  1. Usuń wszystkie odniesienia Mavin ze zmiennych środowiskowych
  2. Pobierz plik binarny z mavin
  3. Rozpakuj go tam, gdzie chcesz, np .: C: \ apache-maven-3.6.0
  4. Przejdź do Zmienne środowiskowe i dodaj do ścieżki zmiennej systemowej „C: \ apache-maven-3.6.0 \ bin”
  5. uruchom wiersz polecenia jako Administrator
  6. sprawdź wersję za pomocą: mvn -v

Wynik CMD:

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

Aberaitius
źródło
0

Napotkałem również następujący błąd w moim systemie (Mac)

Błąd: nie można znaleźć lub załadować klasy głównej org.codehaus.plexus.classworlds.launcher.Launcher

Po kilku przypadkowych przeglądaniach natrafiłem na link „ http://maven.apache.org/install.html ”, który mówi, że „JAVA_HOME” powinno być ustawione na „/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/ Spis treści / Strona główna / jre ”.

Kiedy zmieniłem "JAVA_HOME", jak podano powyżej w ".bash_profile", polecenie "mvn" zaczęło działać, ale polecenie "javac -version" przestało działać.

Po wpisaniu polecenia „javac -version” pojawił się następujący błąd

Nie można znaleźć pliku wykonywalnego w „/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/jre/bin/javac” (-1)

Dlatego wycofałem mój „JAVA_HOME” do „/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home” w „.bash_profile” i dodałem następujący wiersz u góry w skrypcie „mvn”

eksportuj JAVA_HOME = / Library / Java / JavaVirtualMachines / jdk1.8.0_45.jdk / Contents / Home / jre

Teraz zarówno komendy "mvn", jak i "javac" działały poprawnie, ale po uważnej obserwacji skryptu mvn nie mogłem rozróżnić następujących poleceń

/ Library / Java / JavaVirtualMachines / jdk1.8.0_45.jdk / Spis treści / Strona główna / bin / java -classpath /Users/venkatarajeevmandava/Documents/Maven/apache-maven-3.6.1/boot/plexus-classworlds-2.6.0. jar -Dclassworlds.conf = / Users / venkatarajeevmandava / Documents / Maven / apache-maven-3.6.1 / bin / m2.conf -Dmaven.home = / Users / venkatarajeevmandava / Documents / 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 -classpath /Users/venkatarajeevmandava/Documents/Maven/apache-maven-3.6.1/boot/plexus-classworlds-2.6. 0.jar -Dclassworlds.conf = / Users / venkatarajeevmandava / Documents / Maven / apache-maven-3.6.1 / bin / m2.conf -Dmaven.home = / Users / venkatarajeevmandava / Documents / 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

W powyższym pierwsze polecenie spowodowało następujący błąd

Błąd: nie można znaleźć lub załadować klasy głównej org.codehaus.plexus.classworlds.launcher.Launcher

podczas gdy drugie polecenie działało dobrze. Zauważ, że obie powyższe ścieżki mają polecenie "java", podczas gdy jedna pochodzi z "jre", a druga z "jdk"

Inne zmienne globalne są następujące w „.bash_profile”

eksport M2_HOME = / Users / venkatarajeevmandava / Documents / Maven / apache-maven-3.6.1

export PATH = $ PATH: $ M2_HOME / bin

Venkata Rajeev
źródło
-1

Jest to częsty problem podczas konfigurowania Mavena. Wszystko, co musisz zrobić, to: -

  1. M2_HOME: - D: \ apache-maven-2.0.11
  2. M2: - D: \ apache-maven-2.0.11 \ bin
  3. Ścieżka: - Dołącz do;% M2%

M2_HOME & M2: - muszą być zadeklarowane jako zmienne systemowe, a nie jako zmienne USER / ADMIN.

Ścieżka: - może to być zmienna systemowa LUB zmienna USER / ADMIN [PATH]. Preferowana zmienna systemowa.

Po dokładnym ustawieniu tych 3 zmiennych możesz zweryfikować instalację Mavena, jak poniżej.

Po monicie CMD: -


C: \ Documents and Settings \ ADMINISTRACJA> mvn --version


Wynik :-


Apache Maven 2.0.11 (r909250; 2010-02-12 11: 25: 50 + 0530) Wersja Java: 1.6.0_22 Strona główna Java: C: \ Program Files \ Java \ jdk1.6.0_22 \ jre Domyślne ustawienia regionalne: en_US, platforma kodowanie: Cp1252 Nazwa systemu operacyjnego: „windows xp” wersja: „5.1” arch: „x86” Rodzina: „windows”

Dzięki.

HMB
źródło
-1

Obok być może przydatnych, ale być może zbyt symptomatycznych odpowiedzi, oto ta, która próbuje pomóc znaleźć przyczynę problemu.

Maven to narzędzie Java uruchamiane z wiersza poleceń. Oznacza to, że nie jest to samodzielny plik binarny, jest to zbiór java .jar, interpretowanych przez jvm ( java.exew systemie Windows, javana Linuksie).

mvnPoleceń, to skrypt. W systemie Windows jest to skrypt o nazwie, mvn.cmdaw systemie Linux jest to skrypt powłoki. Zatem jeśli napiszesz: mvn installco się stanie:

  1. dla właściwego skryptu wywołującego wywoływany jest interpreter poleceń ( /bin/shlub cmd.exe)
  2. ten skrypt ustawia potrzebne zmienne środowiskowe
  3. i na koniec wywołuje interpreter java z wymaganą ścieżką klas, która zawiera funkcjonalność mavena.

Problem jest z (2). Na szczęście ten skrypt jest po prostu bardzo prosty. Dla programisty Java nie powinno być dużym problemem debugowanie skryptu w około 20 liniach, nawet jeśli jest to trochę obcy język.

W Linuksie możesz debugować skrypty -xpowłoki, podając flagę swojemu interpreterowi powłoki (co jest najprawdopodobniej bash). W systemie Windows musisz znaleźć inny sposób debugowania cmd.exeskryptu. Więc zamiast mvn installwydawać polecenie bash -x mvn install.

Wynik będzie taki:

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

... nie tak wiele rzeczy ...

+ 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

Na koniec możesz łatwo przetestować, która zmienna środowiskowa poszła źle i możesz bardzo łatwo naprawić skrypt (lub ustawić to, co jest potrzebne).

peterh - Przywróć Monikę
źródło