Не удалось установить 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