Maven с Cygwin - Ошибка: JAVA_HOME не определен правильно

Я пытаюсь запустить Maven на cygwin. Я добавил maven на путь, и мой Java-дом выглядит следующим образом:

$ echo $JAVA_HOME 
/cygdrive/c/Program Files/Java/jdk1.6.0

Но когда я пытаюсь запустить mvn --version, я получаю следующее:

Error: JAVA_HOME is not defined correctly.
  We cannot execute /cygdrive/c/Program Files/Java/jdk1.7.0_01/bin/java

Любая идея, почему она не работает? Java -version работает отлично, поэтому это не проблема с java. Я также попытался использовать jdk1.6.0.

Запуск which java дает,

$ which java
/cygdrive/c/windows/system32/java

и java -version дает,

$ java -version
java version "1.7.0_01"
Java(TM) SE Runtime Environment (build 1.7.0_01-b08)
Java HotSpot(TM) Client VM (build 21.1-b02, mixed mode, sharing)

Ответ 1

Если бы я запустил mvn.bat вместо mvn, у меня не было этой проблемы.

Итак, поскольку Cygwin будет запускать файл mvn, я заменил этот файл mvn на мягкую ссылку (ln -s mvn.bat mvn) на командный файл. Таким образом, запуск mvn автоматически запустит mvn.bat который mvn.bat эти проблемы.

Ответ 2

Любой, кто использует Cygwin и Maven, здесь именно то, что вам нужно:

В вашей подсказке Cygwin Bash:

$ vim ~/.bashrc

или же:

$ nano ~/.bashrc

(Который когда-либо ты себе представляешь...)

Добавьте следующее:

alias mvn=mvn.bat

Сохранить и выйти. Затем запустите:

$ source ~/.bashrc

Теперь вы сможете использовать команду mvn как в командной строке cmd.

Ответ 3

Cygwin использует консоль dos для выполнения сборок Maven (mvn.bat).

Задайте в качестве домашней C:\Program Files\Java\jdk1.7.0_01 расположение C:\Program Files\Java\jdk1.7.0_01.

Ответ 4

Установка JAVA_HOME в /cygdrive/c/Progra~1/Java/jdk1.6.0 может помочь.

Ответ 6

Я столкнулся с той же проблемой при запуске Gradle из Cygwin Tool.

Я использовал для установки дома Java, включая папку bin:

C:\Program Files\Java\jdk1.7.0_67\bin

Но позже я понял, что некоторые приложения не распознают, если вы включили папку bin, поэтому я изменил путь к классу на C:\Program Files\Java\jdk1.7.0_67 и он начал работать.

Ответ 7

Я понял, что в меню Переменные среды, хотя путь JAVA_HOME появился без точки с запятой (;) в конце строки, при просмотре на панели текстового редактора он был там. Удаление это исправило все проблемы.