Новая установка Maven: mvn -version java.lang.ClassNotFoundException - PullRequest
8 голосов
/ 15 ноября 2011

Итак, я установил maven со следующими данными:

Путь установки:

C:\Program Files\Apache Software Foundation\apache-maven-3.0.3

Env vars:

JAVA_HOME C:\Progra~1\Java\jdk1.6.0_25
M2_HOME C:\Program Files\Apache Software Foundation\apache-maven-3.0.3

Пользовательские переменные:

M2 %M2_HOME%\bin
PATH %JAVA_HOME%\bin;%M2%;

Теперь из командной строки

C:\>javac -version
javac 1.6.0_25

C:\>mvn -version
Exception in thread "main" java.lang.NoClassDefFoundError: org/codehaus/plexus/c
lassworlds/launcher/Launcher

Caused by: java.lang.ClassNotFoundException: org.codehaus.plexus.classworlds.lau
ncher.Launcher
        at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClss(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: org.codehaus.plexus.classworlds.launcher.Launcher
.  Program will exit.

До сих пор я был изолирован от подробностей сборки командной строки для Java благодаря Eclipse, но похоже, что у него проблемы с поиском plexus-classworlds-2.4.jar в каталоге / boot. Нужна ли мне дополнительная информация о пути?

Спасибо!

Ответы [ 8 ]

3 голосов
/ 15 ноября 2011

У меня было подобное, когда у меня был mvn.bat для maven2 в другой части PATH.Поэтому внимательно проверьте все каталоги вашей переменной PATH.

1 голос
/ 11 сентября 2016

Попробуйте это:

unset M2_HOME
source .bash_profile

.bash_profile:

...
export M2_HOME=$(/Users/camel/apache-maven-2.2.1)
export PATH=$PATH:$M2_HOME/bin
...

Это работает для моего Mac (os x ver 10.11), когда я использую maven2 после maven3.

1 голос
/ 06 ноября 2014

, даже когда я сталкиваюсь с той же проблемой, а затем я изменил echo off на echo on в mvn.bat и обнаружил, что мой maven пакет не был установлен должным образом и загрузочная папка в c: /maven/maven3.0.3 отсутствует, я скопировалпропала папка и все заработало:)

1 голос
/ 02 мая 2014

Я смог решить мою проблему с помощью следующего, когда

export JAVA_HOME=/blah/blah
export M2_HOME=/usr/local/maven   
export M2=M2_HOME/bin

Мне удалось выяснить, глядя на имя папки, это было 3.2.1

Возможно, я не читал документ, но вот мой ответ на эту проблему.

export JAVA_HOME=/blah/blah
export M3_HOME=/usr/local/maven   
export M3=M2_HOME/bin

Мой java 7. Надеюсь, это поможет некоторым людям с Maven 3 вместо M2.

0 голосов
/ 21 сентября 2018

Я решил свою проблему, обновив свой maven с apache-maven-3.3.9 до apache-maven-3.5.4. И, наконец, измените мои системные переменные на apache-maven-3.5.4: добавьте оба M2_HOME

M2_HOME :: C: \ apache-maven-3.5.4

JAVA_HOME: C: \ Program Files \ Java \ jdk1.8.0_101

0 голосов
/ 11 сентября 2016

Возможно, вам нужно установить MAVEN_HOME плюс M2_HOME. Оба с одинаковым путем. Убедитесь, что переменные должны быть установлены так хорошо, и попробуйте снова. После попытки установить версию 7.8 Java, потому что версия 6 может быть несовместима.

NB : установить maven в path, например, на моем Mac у меня есть .profile со следующими настройками: export JAVA_HOME = $ (Библиотека / Java / JavaVirtualMachines / jdk1.8.0_101.jdk / Contents / Home) экспорт PATH = / пользователи / alessandropioardizio / рабочий стол / SDK / apache - maven - 3.1.1 / bin: $ PATH

Дайте мне знать, если это работает.

0 голосов
/ 22 февраля 2013

Я решил эту проблему, удалив все JRE / JDK , затем переустановив необходимый JDK и удалив все пробелы из пути к папкам.

C:\dev\jdk
C:\dev\maven3.0.4
C:\dev\project\myProject
c:\dev\eclipse
0 голосов
/ 15 ноября 2011

Есть ли C:\mvn.bat?

В Windows текущая папка всегда находится в PATH.

[ПРАВИТЬ] Ошибка может иметь несколько причин: Версия mvn.bat didn 'не соответствует остальной части кода, или библиотеки повреждены.

Чтобы сделать еще один шаг, измените строку @echo off в mvn.bat на @echo on и снова запустите сценарий.Затем он напечатает каждую команду по мере ее выполнения.Найдите в выходных данных %CLASSWORLDS_JAR%

Убедитесь, что все JAR, упомянутые в %CLASSWORLDS_JAR%, существуют и в порядке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...