2012-06-20 5 views
107

Я установлена ​​последняя maven-3.0.4на Windows 7:
Установка детали следующим образом:
Путь установки:Maven ошибка: Не удалось найти или загрузить основной класс org.codehaus.plexus.classworlds.launcher.Launcher

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 

переменные Path добавляются:

%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 

Это единственная версия на мавенно, установленных на моем компьютере, и решение, даваемое на многих блогах, относящихся к удалению предыдущих M2_HOME Неверная переменная среды.

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

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

+3

Просто скачал ** бинарный ** 'zip' и он был сломан. Заменяется на '.tar.gz', и он работает. Поэтому, когда 'M2_HOME' установлен правильно, действительно постарайтесь проверить правильность загруженного вами файла. –

+0

@PavelHoral же случилось со мной –

ответ

4

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

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

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

+0

Спасибо, но у меня есть как jdk, так и jre. Вы можете видеть, что я дал JAVA_HOME как C: \ Program Files \ Java \ jdk1.7.0_04. И если я дам путь для M2_HOME, который вы сказали, cmd даже не распознает команду mvn. – manofsins

+0

Вы меняете M2_HOME, поскольку я описал, что добавит% M2_HOME% \ bin к вашему пути, который необходим для вызова команды mvn. – khmarbaise

1

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

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

Спасибо, но, к сожалению, я только что опечатал его здесь, и он был таким же, как вы сказали, «без дефиса». – manofsins

60

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

  • M2_HOME
  • M2
  • java_home

Кроме того, я сделал их всех Система Переменные, а не пользователь V как говорят инструкции 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] 
+0

M2_HOME - первое, что нужно проверить, если вы обновляете. JAVA_HOME должен оставаться неизменным. –

+3

Как используется переменная среды 'M2'? У меня только 'JAVA_HOME' и' M2_HOME'. –

+1

@KevinMeredith: переменная среды 'M2' иногда используется для указания пути'% M2_HOME \ bin% ', который, в свою очередь, затем добавляется к переменной среды% Path Path. Это необходимо, если командный файл Maven mvn.bat не может быть найден в стандартных элементах%% Path%. Типичным примером использования будет нестандартный каталог установки для Maven. – Moreaki

43

Если бы этот вопрос в двух различных Ubuntu 12.04 установок, несмотря на Установок делается APT-получить. Проблема была M2_HOME.

Фиксированный с:

export M2_HOME=/usr/share/maven 
+2

Это сработало для меня, но с M2_HOME =/usr/share/maven2 (на случай, если кто-нибудь еще попробует его). Благодаря! – jimkont

+1

На Ubuntu лучше создайте /etc/profile.d/maven.sh с указанной вами командой: 'export M2_HOME =/usr/share/maven'. Как указал @jimkont, иногда это maven2 или maven3 (если вы, конечно, установили maven3). –

+0

Это сработало: export M2_HOME =/usr/share/maven3 –

2

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

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

Я подтвердил, что мой M2_HOME переменного была установлен на путь, где Maven был установлен на компьютере, и что echo %path% подтвердил, что Мейвен был на моем пути.

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

Я скопировал путь, присвоенный переменной 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" 

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

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

14

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

+0

Спасибо за исправление. Однако почему вы не можете использовать загрузку src также, если она содержит правильное выполнение в каталоге bin? – java123999

13

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

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

, а затем я chaged его

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

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

-1

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

  1. M2_HOME: - D: \ апач-Maven-2.0.11
  2. M2: - D: \ апач-Maven-2,0.11 \ бен
  3. Путь: - Append его;% M2%

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

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

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

На CMD Prompt: -


C: \ Documents и Settings \ ADMIN> МВН --version


Выход: -


Apache Maven 2.0. 11 (r909250; 2010-02-12 11: 25: 50 + 0530) Версия Java: 1.6.0_22 Домашняя страница Java: C: \ Progra м Files \ Java \ jdk1.6.0_22 \ JRE По умолчанию локали: en_US, кодировка платформы: CP1252 название ОС: "Windows XP" версия: "5,1" арка: "x86" Семья "окна"

Спасибо.

41

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

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

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

+3

+1: Я могу подтвердить, что это его дело. – carlspring

+1

Фактически я загрузил источник ** специально **, поскольку это традиционный способ сделать что-то, но я случайно выполнил инструкции для двоичной установки. Простое копирование бинарного tar на самом деле было проще в долгосрочной перспективе. – MDMoore313

+0

+1: То же самое произошло здесь - случайно нажал на неправильную ссылку для скачивания. Работает не то, что я получил нужный zip-файл! –

1

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

115

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

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

+1

Да, это сработало для меня на моем Mac. Благодаря! –

+0

такой же думаю, на Mac – Ionut

+23

То же самое для меня на mac. ** Удостоверьтесь, что вы удалили M2_HOME ** – Luke

3

Я столкнулся с аналогичной проблемой на моем 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, она всегда давала Та же проблема

Could not find or load main class 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

0

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

1

Попробуйте скачать бинарный 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.

1

Я нахожу, что эта проблема в моем centOS вызвана тем, что «Oracle Java заменяется на gcj», после изменения java 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 
1

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

1

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

+0

Я как раз собирался опубликовать это. Это именно та проблема, с которой я столкнулся. Если бы я только прочитал ваш ответ, прежде чем он спас бы мне 30 минут. –

-1

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

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

Команда mvn, это сценарий. В окнах это скрипт под названием mvn.cmd и на linux, это скрипт оболочки.Таким образом, если вы пишете: mvn install, что будет происходить:

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

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

В linux вы можете отлаживать shellscripts, предоставляя флаг -x интерпретатору оболочки (что, скорее всего, bash). В окнах вам нужно найти другой способ отладки сценария cmd.exe. Итак, вместо 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 

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

0

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

4

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

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

+0

Ничего себе, спасибо за это :-) – Sigalit

+0

не отключайте M2, M2_HOME - установите их правильно. – ChuckCottrill

1

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

2

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

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

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

enter image description here

Смежные вопросы