2011-12-15 14 views
11

Próbuję uruchomić Mavena na cygwin. Dodałem Maven do ścieżki i mój dom Java wygląda następująco:Maven z Cygwin - Błąd: JAVA_HOME nie jest poprawnie zdefiniowany

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

Jednak kiedy próbuję uruchomić mvn --version, otrzymuję to:

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

Każdy pomysł, dlaczego to nie działa? Java -version działa dobrze, więc nie jest to problem z java. Próbowałem też zamiast tego jdk1.6.0.

Running which java daje,

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

i java -version daje,

$ 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

Czy chcesz uciec z przestrzeni w Program Files za pomocą \? Nigdy nie instaluję niczego związanego z programistami tylko z powodu tej głupiej przestrzeni. – digitaljoel

+0

Uciekłem, ale daje ten sam błąd. Też nie lubię miejsca w plikach programu, ale wolałbym nie zmieniać sposobu, w jaki korzystam z okien tylko z powodu cygwin. – gsingh2011

+0

Co można wydrukować z "którego java"? i 'java -version'? – jtahlborn

Odpowiedz

0

Wspomnieniach z Win95 dni - mógł ustawienie JAVA_HOME do /cygdrive/c/Progra~1/Java/jdk1.6.0 pomoc?

3

cygwin używa konsoli dos do wykonywania maven builds (mvn.bat).

Ustaw swój dom java do c: \ Program Files \ Java \ jdk1.7.0_01

+0

w rzeczywistości jest to najbardziej poprawny sposób rozwiązania tego problemu. Wszystkie narzędzia cygwin podważają styl okna 'JAVA_HOME', ale nie odwrotnie. –

+0

Działa na moim dysku twardym, ale nie na dysku flash. używając mvn.bat pracował dla obu przypadków, jestem nie wiem dlaczego tak powinno być! – binit

17

miałem ten sam problem i rozwiązać go tak: Jeśli biegnę mvn.bat zamiast mvn, zrobiłem nie mam tego problemu.

Ponieważ Cygwin uruchomi plik mvn, zamieniłem ten plik mvn na softlink (ln -s mvn.bat mvn) na plik bat. W ten sposób uruchomiona mvn po cichu uruchomi plik mvn.bat, który z wdziękiem poradzi sobie z tymi problemami.

+0

Miałem ten sam problem, próbowałem uruchomić mrówkę z cygwin. Ścieżka JAVA_HOME była zdecydowanie poprawna, uruchamianie ant.bat zamiast ant naprawiło mój problem –

+0

Mam taki sam problem z Gradle: chciałem rozpocząć budowę maven z poziomu Gradle, ale kiedy "mvn" jest wykonywane z poziomu skryptu gradle , JAVA_HOME jest nagle "poprawiony" do/cygdrive/-path (zamiast C: \ ..- ścieżka jest po wywołaniu gradle), a tym samym maven invoker który ewidentnie działa w dos-space nie może znaleźć java . Ktoś wie, kto zmienia JAVA_HOME ?! Wygląda na to, że jest to jedyny env-var, który dostaje to leczenie. (Może się wydawać, że ma to coś wspólnego z wywołaniem podprocesu w stylu "cmd/c"). – stolsvik

10

Każdy Korzystanie Cygwin i Maven, tutaj jest dokładnie to, czego potrzebujesz ...

W swoim wierszu bash Cygwin:

$ vim ~/.bashrc lub $ nano ~/.bashrc (Który kiedykolwiek masz ochotę ...)

Dołącz następujące:

alias mvn=mvn.bat

Zapisz & Zakończ. Następnie uruchom:

$ source ~/.bashrc

Teraz powinieneś być w stanie użyć polecenia „” mvn tak jak w wierszu cmd.

0

byłem stoi ten sam problem podczas pracy z Gradle cygwin narzędzia.

kiedyś ustawić domu java w tym folderze bin

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

Ale potem zdałem sobie sprawę, że niektóre aplikacja nie rozpoznaje, czy u obejmują folderu bin, więc zmieniłem ścieżkę klasy do C:\Program Files\Java\jdk1.7.0_67 i rozpoczął pracę .

Powiązane problemy