Podczas próby uruchomienia gradle pojawia się następujący błąd:
# gradle
ERROR: JAVA_HOME is set to an invalid directory: /usr/lib/jvm/default-java
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation.
Jednak po sprawdzeniu zmiennej JAVA_HOME otrzymuję:
# echo $JAVA_HOME
/usr/lib/jvm/java-7-oracle
Mój JAVA_HOME jest zdefiniowany w .bashrc i dwukrotnie sprawdziłem, czy jest ustawiony jako źródło.
Uruchomienie java -version
potwierdza również, że JAVA_HOME jest poprawnie ustawiona i znajduje się na PATH.
# java -version
java version "1.7.0_51"
Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode)
Sprawdziłem również, czy /usr/bin/java
dowiązania symboliczne, do /etc/alternatives/java
których z kolei poprawnie prowadzą dowiązania symboliczne/usr/lib/jvm/java-7-oracle/jre/bin/java
Dodatkowo sprawdziłem, czy nie ma zduplikowanych definicji JAVA_HOME w .bash_profile
lub /etc/profile
.
Więc moje pytanie brzmi: jak / dlaczego Gradle znajduje /usr/lib/jvm/default-java
, a co ważniejsze, jak wskazać właściwy katalog?
Inne programy, które wymagają JDK, działają dobrze, więc myślę, że jest to problem z Gradle. Próbowałem również ponownie zainstalować Gradle, co nie miało znaczenia.
Używam 64-bitowego Xubuntu (Ubuntu 13.10 base)
źródło
/usr/lib/jvm/default-java
katalog lub łącze symboliczne? Jak zainstalowałeś Gradle?/usr/lib/jvm/default-java
reż. Zainstalowany z apt (apt-get install gradle)JAVA_HOME
ustawiać skryptu startowego Gradle . JeśliJAVA_HOME
jest ustawiona, skrypt używa$JAVA_HOME/bin/java
do uruchomienia Gradle. W przeciwnym razie używajava
(czylijava
musi być naPATH
). Być może pakiet apt (innej firmy) używa zmodyfikowanego skryptu startowego.usr/lib/jvm/defult-java
. Dzięki za pomocsource ~/.bashrc
lub zrestartowałeś swój komputer po ustawieniu JAVA_HOME?Odpowiedzi:
Okazuje się, że konkretny plik binarny Gradle, który pobrałem z repozytorium Ubuntu 13.10, sam próbuje wyeksportować JAVA_HOME. Dzięki Lucasowi za zasugerowanie tego.
/usr/bin/gradle
wiersz 70:Skomentowanie tego wiersza rozwiązuje problem, a Gradle znajduje poprawną ścieżkę do pliku binarnego Java.
Jeśli po prostu pobierzesz plik binarny z ich strony internetowej , nie ma tego problemu, jest to problem z wersją repozytorium Ubuntu. Wydaje się, że są też inne problemy z wersją 13.10.
źródło
dodaj dowiązanie symboliczne
źródło
Rozwiązaniem jest utworzenie JAVA_HOME == dir powyżej bin gdzie javac żyje jak w
OK, więc w końcu znalazłem bin powyżej rzeczywistego javaca, więc zrób to
powyżej można uprościć i uogólnić na
źródło
U mnie ten błąd wynikał z powodu instalacji Gradle jako sudo i próbowałem jako domyślny użytkownik uruchomić Gradle.
Próbować:
lub
źródło
Spróbuj zainstalować najnowszą wersję
gradle
,Jeśli zainstalujemy z repozytorium ubuntu, zainstaluje starą wersję (dla mnie był to gradle 1.4). W starszej wersji ustawia java home z gradle jako
export JAVA_HOME=/usr/lib/jvm/default-java
. Najnowsza wersja nie ma tego problemu.źródło
Czy byłeś
export
swoimJAVA_HOME
? Bez eksportu ustawienie nie będzie propagowane do poleceń uruchamianych wewnątrz tej powłoki. Ponadtojava -version
nie używaJAVA_HOME
, a raczej używa pierwszegojava
znalezionego na twojej ścieżce. Upewnij się, że.bashrc
wyglądasz mniej więcej tak:źródło
export JAVA_HOME=/usr/lib/jvm/java-7-oracle
(nieco inna składnia, ale zakładam, że jest taka sama)gradle
samo polecenie może ustawić tę zmienną? Być może osoba, która zainstalowała,gradle
utworzyła skrypt opakowujący, który ustawił zmienne środowiskowe przed uruchomieniem aplikacji. Podczas korzystania z tomcat często zdarza się, żecatalina.sh
(który jest skryptem startowym) wywołuje a,setenv.sh
aby skonfigurować zmienne środowiskowe, które mogą obejmowaćJAVA_HOME
Napotkałem ten problem, gdy uruchomiłem następujące polecenie w systemie Ubuntu:
Aby rozwiązać ten problem, wykonałem następujące kroki:
Dodaj JAVA_HOME do / etc / environment:
Dodaj:
Po zapisaniu przeczytaj:
Na koniec możesz uruchomić polecenie kompilacji.
źródło
Miałem ten sam problem, ale nie znalazłem polecenia eksportu w linii 70 w pliku gradle dla najnowszej wersji 2.13, ale rozumiem głupią pomyłkę, czyli śledzenie
Jeśli nie znajdziesz linii 70 z poleceniem eksportu w pliku gradle w twoim folderze gradle / bin /, to sprawdź swój ~ / .bashrc, jeśli znajdziesz
export JAVA_HOME==/usr/lib/jvm/java-7-openjdk-amd64/bin/java
, a następnie usuń/bin/java
z tej linii, na przykładJAVA_HOME==/usr/lib/jvm/java-7-openjdk-amd64
, i zamiast tego w ścieżce >>> z tegoexport PATH=$PATH:$HOME/bin:JAVA_HOME/
będzieexport PATH=$PATH:$HOME/bin:JAVA_HOME/bin/java
. Następnie uruchomićsource ~/.bashrc
.Powodem jest to, że jeśli sprawdzisz plik gradle, znajdziesz w linii 70 (jeśli nie ma polecenia eksportu) lub w linii 75,
Tak było w moim przypadku.
źródło
W moim Ubuntu od 2 dni boli mnie ten problem.
Krok 1. Wpisz na terminalu,
whereis java
a wyświetli się coś takiegoKrok 2. Zwróć uwagę na ścieżkę:
/usr/lib/jvm/java-8-openjdk-amd64/bin/java
wykluczyć
bin/java
twój JAVA_HOME =
/usr/lib/jvm/java-8-openjdk-amd64
źródło
Dla mnie problemem był wyraźny zestaw w sekcji argumentów konfiguracji narzędzi zewnętrznych w Eclipse.
źródło
Możesz także przejść do folderu bin w folderze instalacyjnym gradle i poprawić parametr JAVA_HOME w pliku gradle.bat. W moim przypadku mój katalog JAVA_HOME był ustawiony na c: \ Program files \ java \ bin JAVA_HOME w gradle.bat został ustawiony na% JAVA_HOME% \ bin \ java.exe.
Poprawiłem JAVA_HOME w gradle.bat i zadziałało.
Dziękuję Ci!!!
źródło
Utwórz dowiązanie symboliczne do katalogu default-java.
Możesz znaleźć katalog java przez
źródło
Przed uruchomieniem polecenia spróbuj wpisać:
Gdzie
path_to_java_home
jest folder, w którym znajduje się plikbin/java
znajdujesz.Jeśli java jest poprawnie zainstalowana, możesz znaleźć jej lokalizację za pomocą polecenia:
Nie zapomnij usunąć
bin/java
z końca ścieżki podczas wkładania jejJAVA_HOME
źródło
Z tym też miałem problem. Mówił zły katalog, kiedy był poprawny. Więc właśnie utworzyłem zmienną lokalną o nazwie JAVA_HOME pomijając ostateczny / bin / java. U mnie to działało dobrze.
źródło
Jeśli środowisko GRADLE_HOME i JAVA_HOME jest ustawione poprawnie, sprawdź katalog JDK i upewnij się, że w ścieżce poniżej znajduje się plik java.exe .
Jak wspomniano o błędzie w pliku gradle.bat
Nie jest w stanie zlokalizować instalacji Java. Więc znajdź i ustaw
pod,
%JAVA_HOME%/bin
jeśli wszystko się zgadza.To działa dla mnie (moje konto zostało wyłączone przez klienta, a ich administrator usunął java.exe z mojego katalogu).
źródło
W moim dockercontainerze (będąc minimalnym problemem braku znalezienia javy) było to, że „które” nie zostało zainstalowane. Łączenie projektu przy użyciu gradlew, w którym w ./gradlew znajduje się instalacja Java, która rozwiązała problem.
źródło
[Windows] Jak już powiedziano, wygląda na to, że .bat -file próbuje znaleźć plik java.exe,
%JAVA_HOME%/bin/java.exe
więc go nie znajduje, ponieważbin
jest powtarzany dwukrotnie w ścieżce. Usuń ten dodatek/bin
z gradle.bat.źródło
Dodanie poniższych wierszy w build.gradle rozwiązało mój problem.
źródło