Ошибка Maven: не удалось найти или загрузить основной класс org.codehaus.plexus.classworlds.launcher.Launcher

Я установил последнюю версию maven-3.0.4 в Windows 7:
Детали установки следующие:
Путь установки:

C:\apache-maven-3.0.4  

Переменные среды:

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

Добавлены переменные пути:

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

В окне команды он отображается так:

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  

Это единственная версия на maven, установленная на моем ПК, и решение, предоставленное во многих блогах, ссылающееся на удаление предыдущей переменной среды M2_HOME, недопустимо.

Я прочитал и пробовал все решения, представленные в таких блогах, как:

но все еще не в состоянии добраться до него. Чего бы я мог потерять во всем этом? Заранее спасибо.

Ответ 1

Я тоже попал в эту проблему и нашел эту статью. Для Maven3 изменение моего имени переменной среды из M2_HOME в M3_HOME сделало трюк. Я нахожусь на Mac с OSX 10.9 с JDK 1.7. Надеюсь, это поможет.

Примечание. Пожалуйста, удалите M2_HOME, если он уже установлен. Например: unset M2_HOME

Ответ 2

У меня была такая же проблема и я смог ее решить, тщательно переделав переменные окружения:

  • M2_HOME
  • M2
  • JAVA_HOME

Кроме того, я сделал для них все Системные переменные, а не пользовательские переменные, как говорят инструкции Maven. Когда вы

echo %Path%

Убедитесь, что переменные% M2% и% JAVA_HOME% полностью расширены, т.е.

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]

Ответ 3

Несмотря на то, что на вопрос ответили, я хотел бы добавить, что если вы получаете вышеупомянутую ошибку, убедитесь, что вы загрузили Двоичный файл.

Исходный файл следует загружать только в том случае, если вы являетесь продвинутым пользователем и знаете, как с ним бороться.

У меня была довольно большая доля людей, загружающих неправильный файл, пожилых людей и юниоров.

Ответ 4

Была ли эта проблема на двух разных установках Ubuntu 12.04, несмотря на то, что установки выполнялись с помощью apt-get. Проблема была M2_HOME.

Исправлено:

export M2_HOME=/usr/share/maven

Ответ 5

Я считаю, что эта ошибка вызвана загрузкой SRC вместо BINARY с сайта Maven. Обязательно загрузите Binary zip.

Поскольку приведенный ниже путь вы получите только при загрузке SRC:

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

enter image description here

Ответ 6

Похоже, вы установили (извлекли) исходные файлы вместо двоичных файлов на основе информации о вашем пути. Попробуйте установить двоичные файлы вместо этого и после ответа других плакатов.

Ответ 7

Ну, у меня была эта проблема, и, увидев этот пост и, в частности, ответ на khmarbaise, я заметил, что M2_HOME был

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

а затем я довел его до

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

Я хотел бы упомянуть, что я использую Windows 7 (x64)

Ответ 8

Решение для более поздних версий Maven прямолинейно. Я нахожусь на OS X ElCap, 10.11.6 и обновлен до Maven 3.3.9. У меня была такая же проблема с ошибкой " Could not find...org.codehaus.plexus... ". Ссылка, представленная здесь, предложила решение в комментарии McKamey - просто удалите M2_HOME (unset M2_HOME). Как только я это пробовал, все работало, как ожидалось.

Это можно подтвердить, посетив Maven install page: "Добавить каталог bin созданного каталога apache-maven-3.3.9 в переменную среды PATH" - вообще не упоминается M2_HOME или M3_HOME.

Ответ 9

Вы должны изменить местоположение M2_HOME на следующее:

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

Кроме того, установка JDK выглядит скорее JRE вместо JDK. Для Maven вам нужен JDK и NOT JRE.

Ответ 10

Я столкнулся с аналогичной проблемой на моем Mac OSX. После серии попыток проб и ошибок я, наконец, разрешил его.

Мой ~/.bash_profile выглядел так:

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

и когда я попытался echo M2_HOME с терминала, он показал мне правильный путь, но когда я попытался запустить любую команду maven, например mvn clean или mvn install, она всегда давала ту же проблему

Не удалось найти или загрузить основной класс org.codehaus.plexus.classworlds.launcher.Launcher

Я решил эту проблему, изменив свой M2_HOME на этот

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

И вуаля! Он начал работать! Просто переместив положение /bin из M2_HOME в перед PATH

Ответ 11

Просто убедитесь, что вы загрузили двоичный zip-архив (apache-maven-3.5.0-bin.zip) вместо архива zip-архива. Затем добавьте каталог bin созданного каталога apache-maven-3.5.0 в переменную среды PATH.

Ответ 12

У меня была такая же проблема. У меня есть окно Windows xp, и когда я набираю mvn -version в командной строке, я получил сообщение о страшном ошибке

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

Я подтвердил, что моя переменная M2_HOME была установлена ​​в путь, где Maven был установлен на ПК, и что echo %path% подтвердил, что Maven был на моем пути.

Я искал решение в течение нескольких часов, когда я наткнулся на свое решение (я говорю свое решение, потому что знаю, что это, вероятно, не будет решением для всех, кто получает ту же ошибку).

Я скопировал путь, назначенный моей переменной M2_HOME. Я открыл окно cmd и набрал cd и вставил путь, который я получил от моей переменной M2_HOME. В этот момент я знал, что путь правильный, потому что путь был отображен в окне. В этот момент я вошел в команду dir и, к моему удивлению, получил ошибку "Файл не найден".

Я пошел по этому пути через Explorer и, конечно же, были файлы. Я заметил, что папки исчезли, но я мог получить к ним доступ и посмотреть файлы в каждой папке (у меня есть права администратора на моем компьютере). Я посмотрел на свойства родительской папки для Maven и увидел, что флажок "Скрытый" был проверен. Я удалил чек и применил его и снова попытался выполнить команду dir.

Далее я снова попробовал команду mvn –version, но на этот раз я получил ожидаемые результаты.

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"

Наконец, я создал файл jar и war, и мое веб-приложение успешно работало на моем локальном Tomcat.

Я надеюсь, что это поможет некоторым из вас там.

Ответ 13

Для большинства настроек Maven возникают такие проблемы, как "Не удалось найти или загрузить основной класс...", запустите следующие шаги, чтобы узнать, исправлены ли эти исправления:

  • Убедитесь, что вы распаковали правый архив (архив BINARY, а не архив SOURCE)
  • Удалите все пользовательские и системные переменные, связанные с Maven (например, M2_HOME, M2_OPTS и т.д.).
  • Убедитесь, что системная переменная JAVA_HOME настроена (например, "C:\Program Files\Java\jdk1.8.0_172")
  • Убедитесь, что в ячейке "путь" добавлена позиция java bin (например, "% JAVA_HOME%\bin")
  • Удостоверьтесь, что местоположение maven bin добавлено в системную переменную "путь" (например, "C:\MyInstalls\apache-maven-3.5.4\bin")

затем...

  • Убедитесь, что java настроен (в командной строке: java -version)
  • Убедитесь, что maven настроен (в commandprompt: mvn - -version)

Ответ 14

Кроме того, что указывает @khmarbaise, я думаю, что вы ошиблись в своем JAVA_HOME. Если вы установили местоположение по умолчанию, то не должно быть "-" (дефис) между jdk и 1.7.0_04. Таким образом, это будет

JAVA_HOME C:\Program Files\Java\jdk1.7.0_04 

Ответ 15

Для других людей, которые могут столкнуться с этим, не забудьте проверить ~/.mavenrc для настроек M2_HOME или JAVA_HOME.

Ответ 16

Попробуйте загрузить двоичный zip (например, Maven 3.0.5 (Binary zip)) вместо полного источника на официальном сайте maven. Также убедитесь, что командная строка распознает команды java и javac. Я заметил, что Maven Source zip не содержал никаких библиотек в папке lib, однако у Binary zip было + + в загрузочной папке у него было plexus-classworlds-2.4.jar. Возможно, проблема заключалась в отсутствии этих библиотек. В любом случае это помогло мне, так что мой M2_HOME: C:\Program Files\Java\apache-maven-3.0.5 и в PATH я поставил: C:\Program Files\Java\apache-maven-3.0.5\bin.

Ответ 17

Я нахожу, что эта проблема в моем centOS вызвана тем, что "Oracle Java заменяется на gcj", после того, как java по умолчанию изменил значение на "Oracle Java", проблема устранена.

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

Ответ 18

Похоже, что вы установили исходные файлы (потому что src входит только в исходные файлы, и нам это не нужно). Попробуйте установить Двоичные файлы из там. А затем установите переменные среды, как описано там. Это сработало для меня. И я уверен, что это также сработает для вас.

Ответ 19

Я думаю, что вы загружаете неправильную версию. Я встречаю эту проблему только сейчас, ни один метод не работает после поиска и поиска. Наконец, я обнаружил, что maven, который я загрузил, Исходный почтовый архив. После того, как я перейду на Binary zip archive, все будет хорошо.

Ответ 20

Я тоже столкнулся с подобной проблемой. Но в моем случае я использовал папку apache-maven-3.3.3-src в переменных пути. Позже я исправил тех, у кого правильный путь к папке apache-maven-3.3.3-bin. Это решило проблему. Не говорю, что такая же ошибка сообщается здесь, но таким образом вы также можете получить эту ошибку и исправить ее. Вот что я пытаюсь сказать здесь.

Ответ 21

установить бинарную версию maven устраняет проблемы

apache-maven-3.6.1-bin.zip

Ответ 22

Точно такая же ошибка может появиться даже при правильных настройках переменных среды, если вы копируете только каталог bin в каталог установки. Это делает which работать мелко, и новички застревают.

Ответ 23

У меня была эта проблема, когда я использовал Maven 3.5.4 на OpenJDK 11 на Ubuntu. OpenJDK 11 на Ubuntu на самом деле все еще 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)

Я установил OpenJDK из Oracle в /opt/jdk-11.0.1 и запустил Maven следующим образом:

JAVA_HOME=/opt/jdk-11.0.1 mvn

Теперь он работает как шарм.

Ответ 24

У меня возникла проблема с самим плагином surefire. Возвращение к версии 2.6 работало для меня. Версия 2.18/20/22.1 дала мне ошибку. Теперь я попробовал версию 3.0.0-M1 плагина surefire, и он работает.

Так что что-то не так в surefire plgin между версиями 2.6 и 3.0.0. Я предполагаю, что есть что-то жестко закодированное как значение по умолчанию, которое не должно.

Ответ 25

Для меня, смешно, как это звучит, это помогло просто перезапустить eclipse...

Ответ 26

Это сработало для меня:

  1. Удалить все ссылки Mavin в переменных среды
  2. Загрузите двоичный файл с сайта Mavin
  3. Разархивируйте его туда, куда вы хотите, например: C:\apache-maven-3.6.0
  4. Перейдите в переменные окружения и добавьте в системную переменную путь "C:\apache-maven-3.6.0\bin"
  5. запустить командную строку от имени администратора
  6. проверить версию с: mvn -v

CMD Результат:

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

Ответ 27

Откройте новый терминал и выполните следующие действия:

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

Затем введите

mvn -version

Вы можете установить это в ./bash_profile, чтобы делать это автоматически при каждом запуске терминала

Ответ 28

Это обычная проблема при настройке Maven. Все, что вам нужно сделать, это следующее: -

  • M2_HOME: - D:\apache-maven-2.0.11
  • M2: - D:\apache-maven-2.0.11\bin
  • Путь: - добавить его с помощью% M2%

M2_HOME и M2: - должны быть объявлены как системные переменные, а не как переменные USER/ADMIN.

Путь: - Это может быть системная переменная ИЛИ переменная USER/ADMIN [PATH]. Предпочтительно системная переменная.

Как только вы тщательно выполните настройку этих трех переменных, вы можете проверить установку Maven, как показано ниже.

В командной строке CMD: -


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


Выход: -


Apache Maven 2.0.11 (r909250; 2010-02-12 11: 25: 50 + 0530) Версия Java: 1.6.0_22 Java home: C:\Program Files\Java\jdk1.6.0_22\jre Язык по умолчанию: en_US, кодировка платформы: Cp1252 Название ОС: "windows xp" версия: "5.1" arch: "x86" Family: "windows"

Спасибо.

Ответ 29

Рядом с возможными полезными, но, возможно, слишком симптоматическими ответами, вот тот, который пытается помочь найти причину проблемы.

Maven - это инструмент Java для командной строки. Это означает, что это не отдельный бинарный файл, это коллекция java .jar s, интерпретируемая jvm (java.exe на окнах, java на linux).

Команда mvn - это script. В Windows это script называется mvn.cmd, а на linux - оболочка script. Таким образом, если вы пишете: mvn install, что произойдет:

  • интерпретатор команд (/bin/sh или cmd.exe) вызывается для фактического вызова script
  • этот script устанавливает необходимые переменные среды
  • и, наконец, он вызывает интерпретатор java с требуемым классом классов, который содержит функции maven.

Проблема заключается в (2). К счастью, этот script просто, очень прост. Для java-программиста не должно быть большой проблемы отладки script около 20 строк, даже если это немного чуждый язык.

В linux вы можете отлаживать shellscripts, предоставляя флаг -x интерпретатору оболочки (что, скорее всего, bash). В окнах вам нужно найти другой способ отладки cmd.exe script. Итак, вместо mvn install введите команду bash -x mvn install.

Результат будет выглядеть так:

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

... не так много вещей...

+ 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

В конце вы можете легко проверить, какая переменная среды испортилась, и вы можете легко исправить свой script (или установить его, что нужно).