Не удалось установить Maven в Windows: "JAVA_HOME установлен в недопустимый каталог"

Я сопровождал учебник Maven в письме, но я до сих пор не могу установить Maven в Windows.

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

E:\Documents and Settings\zach>mvn --version

Я получаю:

'mvn' is not recognized as an internal or external command, operable program or batch file.

Я перешел в папку установки maven и запустил mvn --version и получил:

E:\java resources\apache-maven-2.2.0\bin>mvn --version
ERROR: JAVA_HOME is set to an invalid directory.
JAVA_HOME = "E:\Sun\SDK\jdk\bin"
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation

но когда я запускаю java -version, я получаю:

java version "1.6.0_14"
Java(TM) SE Runtime Environment (build 1.6.0_14-b08)
Java HotSpot(TM) Client VM (build 14.0-b16, mixed mode)

Итак, у меня установлена ​​Java. Кто-нибудь знает, в чем проблема?

Ответ 1

Проблемы связаны с вашими путями.

  • Убедитесь, что каталог "E:\java resources\apache-maven-2.2.0\bin" находится в пути поиска команд.
  • Убедитесь, что переменная JAVA_HOME относится к домашнему каталогу для вашей установки Java. Если вы выполняете Java с "E:\Sun\SDK\jdk\bin", переменная JAVA_HOME должна указывать на "E:\Sun\SDK\jdk".

    NB: JAVA_HOME не должен заканчиваться символом "\ bin" 1.

  • Убедитесь, что вы не поставили точку с запятой в переменной JAVA_HOME 2.

    NB: JAVA_HOME должно быть единственным именем каталога, а не "PATH-like" списком имен каталогов, разделенных точкой с запятой.

Также обратите внимание, что вы можете столкнуться с проблемами, если вы проигнорировали этот совет в инструкциях Maven on Windows о пробелах в ключевых путях.

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

"Вам нужно установить Java SDK (например, с сайта загрузки Oracle), и вы должны установить его на путь без пробелов, например c:\j2se1.6."

"Вам нужно распаковать дистрибутив Maven. Не распаковывайте его в середине исходного кода, выберите некоторое место (без пробелов в пути!) и распакуйте его там.

Простым средством для этого было бы переустановить Java или Maven в другом месте, чтобы на пути не было места


1 -.... если вы не сделали безумного выбора для имени своего места установки.

2 - По-видимому, общее решение "voodoo" для проблем с Windows-путями - это разбить точку с запятой на конце. Это не рекомендуется вообще, абсолютно не работает здесь.

Ответ 2

ОШИБКА: JAVA_HOME установлен в недопустимый каталог. JAVA_HOME = "E:\Sun\SDK\jdk\bin" Пожалуйста, установите переменную JAVA_HOME в вашей среде, чтобы она соответствовала местоположению вашей установки Java.

JAVA_HOME должен быть установлен на E:\Sun\SDK\jdk. PATH следует установить как %JAVA_HOME%\bin.

Ответ 3

Я столкнулся с этой проблемой с установкой Grails.

Проблема заключалась в том, что мой JAVA_HOME был c:\sun\jdk\, а мой PATH имел %JAVA_HOME%bin

Я изменил его на: JAVA_HOME= "c:\sun\jdk" and PATH="%JAVA_HOME%\bin"

После этого он работал.

Ответ 4

Я столкнулся с той же проблемой и только что обновил JAVA_HOME для меня.

раньше это было так: C:\Program Files\Java\jdk1.6.0_45\bin  Просто удалил \bin, и это сработало для меня.

Ответ 5

Из-за ограничений безопасности на моем текущем месте работы мне не удалось установить переменные окружения на компьютере под управлением Windows.

Моим обходным путем было скопировать файл mvn.bat из% M2% в C:\WINNT и добавить в верхнюю часть командного файла следующее:

@REM Needed as unable to set env variables on my desktop PC.

set MAVEN_OPTS=-Xms256m -Xmx1024m
set M2_HOME=C:\apache-maven-3.0.4
set M2=%M2_HOME%\bin
set JAVA_HOME=C:\Program Files\Java\jdk1.5.0_15
set PATH=%JAVA_HOME%\bin;%M2%;%PATH%

Не самое приятное решение, но оно работает. Если кто-либо имеет какой-либо другой способ или работу, где стандартные env vars не могут быть установлены в систему, я бы приветствовал их ответ.

Ответ 6

У меня была такая же проблема, и ни один из вышеперечисленных ответов не исправил ее для меня, потому что мои переменные env были установлены. Я только что переустановил свою Java.

Что работало, чтобы

  • перейдите к C:\path\to\apache-maven-3.0.4\bin и откройте файл mvn.bat.
  • Найдите строку, которая выглядит так: @SET JAVA_HOME=C:\progra~1\java\jdk1.7.0_03
  • Исправить его до нужного пути

Я не знаю, зависит ли это от Windows, но это может помочь кому-то!

Ответ 7

После множества неудачных попыток я нашел решение

Это был ";" в конце JAVA_HOME, который я всегда ставил в конце каждой новой переменной, которую я установил. Поэтому избавьтесь от..

JAVA_HOME также устанавливает его в User Variable (без ";" )

Ответ 8

вы должны установить JAVA_HOME или MAVEN_HOME без каталога bin например:  - JAVA_HOME = C:\Program Files (x86)\Java\jdk1.7.0_45  - MAVEN_HOME = C:\Program Files (x86)\apache-maven-3.1.1 Теперь путь =.....;% MAVEN_HOME%\Bin;% JAVA_HOME%\Bin он работает правильно

Ответ 9

JAVA_HOME должен выглядеть так: C:\PROGRA ~ 1\Java\jdk

Надеюсь, что это сработает!

Ответ 10

Кажется, это старый пост, но я все же хотел поделиться тем, как эта проблема была исправлена ​​для меня.

Для пользователей, у которых нет доступа администратора, и когда они открывают командную строку, он запускается под привилегией пользователя. Это означает, что у вас может быть такой путь, как C:\Users\

поэтому при попытке C:\Users\XYZ > mvn -version он фактически ищет путь JAVA_HOME от пользовательских переменных, а не системных переменных в переменных среды.

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

Надеюсь, это поможет кому-то.

Ответ 11

Запуск затмения, а также запуск Maven потребует сохранения двух переменных пути: одной в вашем местоположении jdk1.7_x_x_x, а также в вашем jdk1.7_x_x_\bin. Если вы используете Windows, когда находитесь в переменных среды, выполните следующие действия:

1) создайте переменную USER под названием JAVA_HOME. Укажите это на место вашего файла JAVA. Например: "C:\Program Files\Java\jdk1.7.0_51" (удалить кавычки)

2) в PATH, добавьте% JAVA_HOME% в PATH. Это добавит местоположение файла с шага 1 в ваш PATH. Это полезно для MAVEN

3), если вы используете eclipse, вам нужно указать путь к "C:\Program Files\Java\jdk1.7.0_51\bin". Теперь добавьте% JAVA_HOME%\bin в конец вашего пути.

4) ваш путь должен выглядеть примерно так: C:\Program Files (x86)\Google\google_appengine \; C:\Users\имя_пользователя\AppData\Роуминг\npm;% M2%;% JAVA_HOME%;% JAVA_HOME%\bin

Примечания. Элементы, вложенные в%, например% M2%, назначаются переменными. Он выглядит излишним, но необходимым. Вы можете подтвердить, что все работает, введя:

java -version
javac -version
mvn -version

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

Ответ 12

Иногда в Windows пробелы в путях не распознаются правильно

Если у вас есть проблема с пути, и путь выглядит как

c:\Program Files\....

попробуйте изменить его в старом формате DOS, например

"C:\Progra~1\...

Вы можете использовать dir /x, чтобы проверить правильный синтаксис (третий столбец)

C:\>dir /x ... 11.01.2008 15:47 <DIR> DOCUME~1 Documents and Settings 01.12.2006 09:10 <DIR> MYPROJ~1 My Projects 21.01.2011 14:08 <DIR> PROGRA~1 Program Files ...

В моем компьютере JAVA_HOME есть (и он работает)

"C:\Progra~1\Java\jdk1.8.0_121"

Протестировано в Windows 10

Ответ 13

JDK переключил местоположение java.exe между 1.6 и 1.7!!!

В моем случае я обнаружил, что JAVA_HOME для JDK должен был добавить \jre в конец. Файл bat mvn ищет java.exe и ищет его в JAVA_HOME\bin. Его нет для JDK 1.7; он находится в JAVA_HOME\jre\bin. В JDK 1.6 такой он есть в JAVA_HOME\bin.

Надеюсь, это поможет кому-то.

Ответ 14

Моя ситуация была немного иной.

  • JAVA_HOME было установлено правильно, чтобы указать 1,7
  • Другие проекты Maven работали/строят с 1.7 функциями.
  • PATH был установлен правильно.
  • Все было обновлено.

Но мой простой новый проект Maven не работал. Я заметил, что разница в журналах при запуске mvn clean install. Для моих старых проектов Maven он показал

[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ oldProject---

Но для моего нового проекта это показало:

[INFO] --- maven-compiler-plugin:2.0.2:compile (default-compile) @ newProject ---

Итак, я посмотрел на POM.xml и заметил это в старом проекте POM:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>
    </plugins>
</build>

В принципе, этот плагин сообщает, какую версию компилятора использовать для компиляции. Просто добавили его в новый проект POM.xml, и все сработало.

Надеюсь, это полезно кому-то.

Ответ 15

Я использую Windows 7, проблема была проста:

У меня это было для значения переменной среды JAVA_HOME:

"C:\Program Files\Java\jdk1.7.0_51;"

когда он хочет:

"C:\Program Files\Java\jdk1.7.0_51"

полуколония снова ударяет!

:)

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

Ответ 16

, используя окна 10

Я столкнулся с проблемой.. тогда я удалил JAVA_HOME переменную полностью и только добавил% JAVA_HOME%\bin в PATH, тогда это сработало!!! для mee