Ok. Miałem ten sam problem, ale nie mogłem pobrać wersji 1.8, ponieważ jest ukryta pod inną nazwą. Jest to 8u152. Po kilku godzinach znalazłem to tutaj: oracle.com/technetwork/java/javase/downloads/…
user2367101
Odpowiedzi:
58
Odinstaluj wszystkie poprzednie JDK, w tym 1.8 Zainstaluj JDK 1.8
@Urbycoz wystarczy udać się do Add or Remove Programs/Program Featuresw Windows OS. Następnie usuń wszystkie poprzednie wersje Java. Miałem version 7też zainstalowany i po uninstallingnim cordova run androiddziałał. Powodzenia.
Aakash
1
Ale co to oznacza? W jaki sposób cordova wybiera JDK, jeśli są zainstalowane różne JDK. Czy nie można mieć tylko jednego JDK (np. Maszyny budującej)?
Bruno Ranschaert
nadal musisz ustawić zmienne środowiskowe, aby Cordova mogła znaleźć ścieżkę do twojego superużytkownika
JDK.com/questions/949560/ ...
19
@MadNeox odinstalowanie innej wersji to tylko obejście, a nie rozwiązanie
Gandhi
załatwił sprawę dla mnie. udał się do appwiz.cpl (z cmd systemu Windows) i usunął java 7 i java sdk 7.
Ortiz
53
W systemie Linux (Debian / Ubuntu) można to rozwiązać, wybierając pakiet Java 1.8 SDK w
sudo update-alternatives --config javac
JAVA_HOMEWydaje się, że bezpośrednia zmiana zmiennej env nie przynosi żadnego efektu.
EDYCJA: odpowiadanie na komentarze: Prawdopodobnie ma to coś wspólnego z faktem, że nowe instalacje Debiana (i najwyraźniej Ubuntu) Java za pośrednictwem menedżera pakietów nie używają JAVA_HOMEzmiennej środowiskowej do określenia lokalizacji środowiska JRE. Zobacz ten i ten post, aby uzyskać więcej informacji.
Uczyniłeś mój dzień. Próbowałem wszystkiego w ciągu ostatnich kilku dni. Wielkie dzięki. Ale dlaczego tylko to działa? Dlaczego ustawienie zmiennej nie ma wpływu?
mój-
1
Pracowałem też dla mnie na Ubuntu ... Zrobiłem to, javaale nie javac! Teraz nie ma potrzeby odinstalowywania Javy 9 :)
hughjdavey
Ta sama uwaga tutaj. Chociaż JAVA_HOMEwskazywał na prawy 1.8 JDK, tylko aktualizacja domyślnego systemu zadowalała Cordova.
myoan
1
Podczas wykonywania sudo update-alternatives --config javac W grupie linków javac jest tylko jedna alternatywa (zapewniająca / usr / bin / javac): / usr / lib / jvm / java-11-openjdk-amd64 / bin / javac Nie ma nic do skonfigurowania . muszę wrócić do java-8-openjdk. czy jest tam, aby to zrobić?
Taieb
Dlaczego jest to rozwiązanie w systemie Ubuntu. Tak jak powiedział myoan, dlaczego aktualizacja domyślnego systemu zadowoliła cordova?
Jithin
40
Nie musisz odinstalowywać żadnej wyższej wersji sdk. po prostu zainstaluj jdk1.8.0_161 lub nie, jeśli jest już zainstalowany.
Teraz po prostu ustaw JAVA_HOMEzmienną USER (nie zmienną systemową), jak pokazano na poniższym obrazku.
W ten sposób nie musisz odinstalowywać wyższej wersji, a problem zostanie rozwiązany.
Możesz mieć wersję wyższą niż 8, ale Cordova obsługuje tylko JDK 1.8. Wyświetl ten link Dokumentacja Cordova
Rzuciłem okiem na fragment kodu, który faktycznie sprawdza numer wersji twojej javy. Poszukaj następującego: module.exports.check_java w platformach / android / cordova / lib / check_reqs.js . w linii 220. Zobaczysz wyrażenie regularne i komentarz pozostawiony przez zespół, że Java 10 będzie obsługiwana w przyszłości.
Istniejące wyrażenie regularne nie powiedzie się, jeśli zostanie uruchomione z najnowszymi wersjami języka Java, takimi jak Java 10. To dlatego, że Java 8 lub 9 są zapisywane w następującym formacie: 1. [8-9]. ** ale Java 10 jest zapisywana jako 10. **, a wyrażenie regularne szuka wersji w formacie 1. [8-9]. **
// Let's check for at least Java 8, and keep it future proof so we can support Java 10
var match = /javac ((?:1\.)(?:[8-9]\.)(?:\d+))|((?:1\.)(?:[1-9]\d+\.)(?:\d+))/i.exec(output);
Moje rozwiązanie:
Nie musisz odinstalowywać bieżącej wersji środowiska JRE lub JDK, ponieważ instalator instaluje każdą wersję w określonym folderze.
Odinstalowanie starszych wersji JDK by działało. Ale myślę, że może to być obejście. Napotkałem ten sam problem i zauważyłem, że zarówno nowa wersja JDK, jak i starsza wersja ścieżki JDK zostały wymienione w 'pathzmiennej środowiskowej.
Usunięcie ścieżki JDK starszej wersji ze 'pathzmiennej środowiskowej załatwiło sprawę. Mam nadzieję, że to też komuś pomoże.
Tak, jestem w stanie uruchomić polecenie kompilacji za pomocą tego, ale nadal zmagam się z poleceniem uruchomienia „ionic cordova run android”, pokazując błąd INSTALACJA NIEUDANA AKTUALIZACJA NIEZGODNA.
supriya chauhan
@supriyachauhan możesz spróbować ponownie zainstalować wszystkie elementy od nowa. W przeciwnym razie może być konieczne podanie szczegółowych szczegółów, aby zawęzić problem
Gandhi
9
Odkryłem, że moja zmienna środowiskowa ścieżki wskazywała na Javę 1.7, podczas gdy JAVA_HOME wskazywała na 1.8, więc zmieniłem zmienną path na 1.8 i wszystko było w porządku.
w moim przypadku JAVA_HOME wskazywał na C: \ Program Files (x86) \ Java \ jdk1.7.0_55
kiedy napisałem, gdzie java w cmd wyprowadził C: \ Program Files (x86) \ Java \ jdk1.7.0_55 wraz ze ścieżką java.exe, zmieniłem zmienną JAVA_HOME ze zmiennych środowiskowych na C: \ Program Files \ Java \ jdk1.8.0_20 i działało, więc wygląda na to, że miałem 2 instancje jdk, a cordova potrzebuje wersji 1.8. *.
Chłopaki, aby uzyskać odpowiedni miks w systemie Windows , musisz wykonać następujące czynności
Pobierz i zainstaluj dowolną wersję JDK 1.8 lub nowszą.
Otwórz zmienne środowiskowe, utwórz zmienną środowiskową o nazwie JAVA_HOME i ustaw wartość na ścieżkę instalacji JDK.
C:\Program Files\Java\jdk1.8.0_162
upewnij się, że nie dodajesz \binw wartości.
W zmiennej ścieżki systemowej umieść średnik ;i dodaj tę wartość do ścieżki systemowej, np. C:\Program Files\Java\jdk1.8.0_162\bin;Tutaj\bin jest dodawany.
Uwaga: zmienne środowiskowe są trudne. Przypuszcza się, że są zamykane znakiem ; przed otwarciem kolejnego. Dlatego umieszczamy jeden przed dodaniem wartości, a drugi po wartości, aby ją zamknąć.
Teraz zamknij terminal i otwórz ponownie, a następnie uruchom poprzednie polecenia.
Dzisiaj otrzymałem również ten błąd Cordova : Requirements check failed for JDK 1.8 or greaterw moim Mac OS podczas budowania aplikacji Ionic, kiedy uruchamiam polecenie ionic cordova build --release androidprzez terminal.
Zauważ, że pomimo tego, co mówi komunikat, wygląda na to, że oznacza to, że chce wersji 1.8 i wyrzuca ten komunikat, jeśli masz późniejszą wersję.
Poniżej znajdują się moje wcześniejsze próby, które doprowadziły mnie do powyższej odpowiedzi, która wtedy zadziałała ... Być może będziesz musiał zrobić coś innego w zależności od tego, co jest zainstalowane, więc może te notatki mogą pomóc:
Oznacza to, że mogę przesłonić /usr/bin/javac... zobaczyć polecenia u góry odpowiedzi ...
Polecenie ustawiania go na jdk1.8, używając lnw górnej części tej odpowiedzi, działa dla mnie.
Ten komunikat o błędzie wprawia użytkownika w zakłopotanie, ekran sukcesu jak poniżej.
Komunikat o błędzie sprawia, że użytkownik próbuje naprawić niepowodzenie kompilacji w konfiguracji JAVA_HOME. Ale prawdziwy problem nie dotyczy tylko JAVA_HOME.
Naprawiam ten problem z poprawną konfiguracją w JAVA_HOME i ścieżką w "zmiennej systemowej".
Mam nadzieję, że pomoże rozwiązać problem, ale nie ponownie zainstaluj JDK.
Odpowiedź przesłana przez MadNeox jest prawidłowa, miałem podobny problem, gdy miałem zainstalowany jdk 9, a także wersję 1.8
Najpierw spróbowałem, zachowując jdk 9 i usuwając 1.8, wyświetli się błąd Sprawdzanie wymagań nie powiodło się
Następnie próbowałem odinstalować jdk9 i zainstalować ponownie 1. tym razem nie udało się uruchomić wersji javac
Po pewnym czasie zabawy ze zmiennymi środowiskowymi w końcu otrzymałem rozwiązanie
W tym momencie mój system ma tylko wersję JDK 1.8 Cordova: 7.1.0
-Otwórz zakładkę Zmienne środowiskowe -Pod zmiennymi użytkownika utwórz nową zmienną PATH-nadaj jej następującą wartość C: \ Program Files \ Java \ jdk1.8.0_151 \ bin (może się zmienić w zależności od tego, gdzie zainstalowałeś swój jdk)
To powinno rozwiązać twój problem. Mam nadzieję, że to pomoże
Chociaż odpowiedź została już udzielona, zajęło mi trochę czasu, zanim zrozumiałem, gdzie popełniłem błąd, więc postanowiłem opublikować to w nadziei, że zaoszczędzi to komuś czasu
Po prostu upewnij się, że te same wersje JDK (czyli w tym przypadku 1.8) są dostępne ze PATHzmiennej środowiskowej i JAVA_HOME. Przykład: Jeśli
JAVA_HOME=C:\Program Files\Java\jdk1.8.0_152to
PATHzmienna powinna również zawierać powyższą ścieżkę i, co ważne, przed każdą (jeśli istnieją) inną ścieżką, jeśli JDK / JRE już wspomniano w PATHzmiennej. Możesz odinstalować inne wersje, jeśli żadna inna aplikacja nie używa innej wersji java.
Jeśli masz zainstalowane jdk8 i jdk9, musisz sprawdzić, która wersja jest
w ścieżce i gdzie wskazuje JAVA_HOME.
W opublikowanym przez Ciebie dzienniku widzę, że JAVA_HOME prowadzi do JDK9.
zmodyfikuj swój globel JAVA_HOME env var na docelowy JDK8 lub możesz zmienić JAVA_HOME w PowerShell przed użyciem CLI cordova, jeśli chcesz używać jdk8 tylko dla cordova:
Napotkałem ten sam problem z jdk1.8.0_201. Został rozwiązany, kiedy utworzyłem JAVA_HOME = C: \ Program Files \ Java \ jdk1.8.0_201 i dodałem „C: \ Program Files \ Java \ jdk1.8.0_201 \ bin” w zmienna ścieżki
Mam (Open) JDK 8 i 11 zainstalowane w systemie Windows 10 i miałem ten sam problem. U mnie zadziałało:
Ustaw JAVA_HOME tak, aby wskazywało na JDK 8. (Wspomniane w wielu wcześniejszych odpowiedziach). AND
Usuń (!) JDK 11 z PATH, ponieważ okazało się, że - mimo wyświetlania ścieżki JAVA_HOME wskazującej na JDK 8 - Cordova faktycznie uzyskała dostęp do JDK 11, który był zawarty w PATH, co spowodowało niepowodzenie sprawdzenia wersji Javy.
To stare pytanie, ale ponieważ miałem ten sam problem, ale błąd miał inne źródło, tutaj krótka odpowiedź.
Problem napotkał w systemie Windows (tylko) i z Webstorm IDE 2019.2
W wersji 2019.2 Webstorm wystąpił problem, ponieważ wewnętrznie używał otwartego jdk dla zmiennej% JAVA_HOME% zamiast docelowej (z systemu operacyjnego) java jdk.
W moim przypadku (tak, jest stary, to stary projekt cordova ...)
uruchamianie java -versionw Windows cmd.exe:
$ java -version
java version "1.8.0_221"
ale wykonując java -versionw terminalu Webstorms:
$ java -version
openjdk version "11.0.3" 2019-04-16
// more output
Wraz z wydaną później (dziś) łatką, w wersji 2019.2.1, pojawiła się poprawka. Teraz Webstorm używa zmiennej os% JAVA_HOME% tak, jak powinna, a dane java -versionwyjściowe są identyczne w obu przypadkach.
Ten błąd występuje, gdy domyślną ścieżką do języka Java jest ustawiona wersja inna niż Java 8 lub JDK 1.8. *
W moim przypadku zainstalowałem Javę 11 po zainstalowaniu Java 8
Możesz przetestować, uruchamiając:
java -version
W moim przypadku zwrócił:
java version "11.0.8" 2020-07-14 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.8+10-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.8+10-LTS, mixed mode)
Aby to naprawić, musimy upewnić się, że ścieżka java wskazuje zamiast tego pliki binarne Java 8
Zakładając, że masz już zainstalowaną Javę 8 lub JDK 1.8. *:
Upewnij się, że JAVA_HOME i JRE_HOME są ustawione (upewnij się, że wskazuje na Javę 1.8. *)
Wewnątrz ścieżki, upewnij się, że dodano %JAVA_HOME%\binlubC:\Program Files\Java\jdk1.8.0_251\bin
Źródło problemu: Moja instalacja JDK 11 dodała dwa wpisy PATH na samej górze, mając pierwszeństwo lub nadpisując %JAVA_HOME%\binPATH wskazujący na JDK 1.8. *
Nie dodawaj ich, jeśli ich nie masz, znajdź inne wpisy PATH, które mogą nadpisać %JAVA_HOME%\bin
Klikaj „Przenieś w dół” dla nadpisanych wpisów, dopóki nie znajdą się poniżej %JAVA_HOME%\bin
%JAVA_HOME%\bin PATH, która wskazuje na Javę 8, będzie miała teraz wyższy priorytet niż inne wpisy PATH, które wskazują na JDK 11
Zapisz i otwórz nowy terminal i uruchom
java -version
W moim przypadku wrócił:
java version "1.8.0_251"
Java(TM) SE Runtime Environment (build 1.8.0_251-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.251-b08, mixed mode)
Wygląda na to, że Android SDK nie obsługuje Javy 9. Zmień wersję na 8, jeśli nie chcesz wracać do JDK 1.8, co jest dla mnie śmieszne. JDK 8 działa dla mnie, ale pamiętaj, aby ustawić zmienną środowiskową JAVA_HOME na lokalizację instalacji JDK poprawnie.
Zgodnie z oficjalną dokumentacją Cordova obsługuje tylko JDK 1.8 nie większy do daty (kwiecień 2018) . Albo może występować problem ze skryptem wykrywania wersji w kordowie.
Odpowiedzi:
Odinstaluj wszystkie poprzednie JDK, w tym 1.8 Zainstaluj JDK 1.8
źródło
Add or Remove Programs/Program Features
wWindows OS
. Następnie usuń wszystkie poprzednie wersje Java. Miałemversion 7
też zainstalowany i pouninstalling
nimcordova run android
działał. Powodzenia.W systemie Linux (Debian / Ubuntu) można to rozwiązać, wybierając pakiet Java 1.8 SDK w
JAVA_HOME
Wydaje się, że bezpośrednia zmiana zmiennej env nie przynosi żadnego efektu.EDYCJA: odpowiadanie na komentarze: Prawdopodobnie ma to coś wspólnego z faktem, że nowe instalacje Debiana (i najwyraźniej Ubuntu) Java za pośrednictwem menedżera pakietów nie używają
JAVA_HOME
zmiennej środowiskowej do określenia lokalizacji środowiska JRE. Zobacz ten i ten post, aby uzyskać więcej informacji.źródło
java
ale niejavac
! Teraz nie ma potrzeby odinstalowywania Javy 9 :)JAVA_HOME
wskazywał na prawy 1.8 JDK, tylko aktualizacja domyślnego systemu zadowalała Cordova.Nie musisz odinstalowywać żadnej wyższej wersji sdk. po prostu zainstaluj jdk1.8.0_161 lub nie, jeśli jest już zainstalowany.
Teraz po prostu ustaw
JAVA_HOME
zmienną USER (nie zmienną systemową), jak pokazano na poniższym obrazku.W ten sposób nie musisz odinstalowywać wyższej wersji, a problem zostanie rozwiązany.
źródło
To, co zadziałało, to odinstalowanie jdk 9 i ponowne zainstalowanie jkd 8.x
Na komputerze Mac, aby odinstalować, przejdź do terminala i wykonaj następujące kroki:
Następnie zainstaluj jdk 8.x, pobierając pakiet .dmg z Oracle.
źródło
Możesz mieć wersję wyższą niż 8, ale Cordova obsługuje tylko JDK 1.8. Wyświetl ten link Dokumentacja Cordova
Rzuciłem okiem na fragment kodu, który faktycznie sprawdza numer wersji twojej javy. Poszukaj następującego: module.exports.check_java w platformach / android / cordova / lib / check_reqs.js . w linii 220. Zobaczysz wyrażenie regularne i komentarz pozostawiony przez zespół, że Java 10 będzie obsługiwana w przyszłości.
Istniejące wyrażenie regularne nie powiedzie się, jeśli zostanie uruchomione z najnowszymi wersjami języka Java, takimi jak Java 10. To dlatego, że Java 8 lub 9 są zapisywane w następującym formacie: 1. [8-9]. ** ale Java 10 jest zapisywana jako 10. **, a wyrażenie regularne szuka wersji w formacie 1. [8-9]. **
Moje rozwiązanie:
Nie musisz odinstalowywać bieżącej wersji środowiska JRE lub JDK, ponieważ instalator instaluje każdą wersję w określonym folderze.
1- Zainstaluj wersję Java 8 Skorzystaj z tego łącza
2- Zaktualizuj zmienne środowiskowe:
wskazując im miejsce, w którym zainstalowano JRE 8 i JDK 8.
Otwórz nową sesję terminala i uruchom polecenie, które się nie powiodło. Teraz powinno działać.
Nie działał?
Jeśli to się nie powiedzie z innych powodów, możliwy proces debugowania:
źródło
Odinstalowanie starszych wersji JDK by działało. Ale myślę, że może to być obejście. Napotkałem ten sam problem i zauważyłem, że zarówno nowa wersja JDK, jak i starsza wersja ścieżki JDK zostały wymienione w
'path
zmiennej środowiskowej.Usunięcie ścieżki JDK starszej wersji ze
'path
zmiennej środowiskowej załatwiło sprawę. Mam nadzieję, że to też komuś pomoże.źródło
Odkryłem, że moja zmienna środowiskowa ścieżki wskazywała na Javę 1.7, podczas gdy JAVA_HOME wskazywała na 1.8, więc zmieniłem zmienną path na 1.8 i wszystko było w porządku.
źródło
w moim przypadku JAVA_HOME wskazywał na C: \ Program Files (x86) \ Java \ jdk1.7.0_55
kiedy napisałem, gdzie java w cmd wyprowadził C: \ Program Files (x86) \ Java \ jdk1.7.0_55 wraz ze ścieżką java.exe, zmieniłem zmienną JAVA_HOME ze zmiennych środowiskowych na C: \ Program Files \ Java \ jdk1.8.0_20 i działało, więc wygląda na to, że miałem 2 instancje jdk, a cordova potrzebuje wersji 1.8. *.
źródło
MAC: przejdź do: / Library / Java / JavaVirtualMachines Upewnij się, że masz tylko jdk1.8.0_201.jdk Jeśli masz wiele, usuń inne JDK
źródło
Zgadzam się z @Hozington. To powinien być błąd w kodzie Cordova wykrywający wersję Javy. To co zrobiłem to:
JAVA_HOME
ścieżkę JDK 8 i zmień równieżpath
zmienną.cordova build
ponownie.A błąd zniknął!
źródło
jeśli masz wiele wersji JDK, możesz je uruchomić
przed kompilacją cordova, aby użyć konkretnej wersji jdk :)
źródło
Chłopaki, aby uzyskać odpowiedni miks w systemie Windows , musisz wykonać następujące czynności
C:\Program Files\Java\jdk1.8.0_162
upewnij się, że nie dodajesz\bin
w wartości.;
i dodaj tę wartość do ścieżki systemowej, np.C:\Program Files\Java\jdk1.8.0_162\bin;
Tutaj\bin
jest dodawany.źródło
Czasami zmiana ścieżki i
java-home
nie działa. Musisz dodaćdo ścieżki zmiennej środowiskowej.
źródło
Dzisiaj otrzymałem również ten błąd
Cordova : Requirements check failed for JDK 1.8 or greater
w moim Mac OS podczas budowania aplikacji Ionic, kiedy uruchamiam polecenieionic cordova build --release android
przez terminal.Poniższe polecenie rozwiązuje mój problem: -
Mam nadzieję, że pomoże to komuś w przyszłości!
źródło
Odpowiedź MacOS z zainstalowanymi wieloma wersjami Java i bez konieczności odinstalowywania
Pokaż mi, jakie wersje Java zainstalowałem:
Aby ustawić to na moją wersję jdk1.8:
$ ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_261.jdk/Contents/Home/bin/javac /usr/local/bin/javac
Aby ustawić to na moją wersję jdk11:
$ ln -s /Library/Java/JavaVirtualMachines/jdk-11.0.7.jdk/Contents/Home/bin/javac /usr/local/bin/javac
-------------------------------------------------- -----------------------
Zauważ, że pomimo tego, co mówi komunikat, wygląda na to, że oznacza to, że chce wersji 1.8 i wyrzuca ten komunikat, jeśli masz późniejszą wersję.
Poniżej znajdują się moje wcześniejsze próby, które doprowadziły mnie do powyższej odpowiedzi, która wtedy zadziałała ... Być może będziesz musiał zrobić coś innego w zależności od tego, co jest zainstalowane, więc może te notatki mogą pomóc:
Ustaw ją na moją wersję jdk1.8
$ export PATH=/Library/Java/JavaVirtualMachines/jdk-11.0.7.jdk/Contents/Home/bin/javac:$PATH
Ustaw ją na moją wersję jdk11
$ export PATH=/Library/Java/JavaVirtualMachines/jdk1.8.0_261.jdk/Contents/Home/bin/javac:$PATH
... ale w rzeczywistości to nie działa, ponieważ
/usr/bin/javac
nadal jest uruchamiane jako pierwsze:... aby zobaczyć, co jest pierwsze na ścieżce:
Oznacza to, że mogę przesłonić
/usr/bin/javac
... zobaczyć polecenia u góry odpowiedzi ...Polecenie ustawiania go na jdk1.8, używając
ln
w górnej części tej odpowiedzi, działa dla mnie.źródło
Ten komunikat o błędzie wprawia użytkownika w zakłopotanie, ekran sukcesu jak poniżej.
Komunikat o błędzie sprawia, że użytkownik próbuje naprawić niepowodzenie kompilacji w konfiguracji JAVA_HOME. Ale prawdziwy problem nie dotyczy tylko JAVA_HOME.
Naprawiam ten problem z poprawną konfiguracją w JAVA_HOME i ścieżką w "zmiennej systemowej".
Mam nadzieję, że pomoże rozwiązać problem, ale nie ponownie zainstaluj JDK.
źródło
Odpowiedź przesłana przez MadNeox jest prawidłowa, miałem podobny problem, gdy miałem zainstalowany jdk 9, a także wersję 1.8
Najpierw spróbowałem, zachowując jdk 9 i usuwając 1.8, wyświetli się błąd Sprawdzanie wymagań nie powiodło się
Następnie próbowałem odinstalować jdk9 i zainstalować ponownie 1. tym razem nie udało się uruchomić wersji javac
Po pewnym czasie zabawy ze zmiennymi środowiskowymi w końcu otrzymałem rozwiązanie
W tym momencie mój system ma tylko wersję JDK 1.8 Cordova: 7.1.0
-Otwórz zakładkę Zmienne środowiskowe -Pod zmiennymi użytkownika utwórz nową zmienną PATH-nadaj jej następującą wartość C: \ Program Files \ Java \ jdk1.8.0_151 \ bin (może się zmienić w zależności od tego, gdzie zainstalowałeś swój jdk)
To powinno rozwiązać twój problem. Mam nadzieję, że to pomoże
Chociaż odpowiedź została już udzielona, zajęło mi trochę czasu, zanim zrozumiałem, gdzie popełniłem błąd, więc postanowiłem opublikować to w nadziei, że zaoszczędzi to komuś czasu
źródło
Po prostu upewnij się, że te same wersje JDK (czyli w tym przypadku 1.8) są dostępne ze
PATH
zmiennej środowiskowej iJAVA_HOME
. Przykład: JeśliJAVA_HOME=C:\Program Files\Java\jdk1.8.0_152
toPATH
zmienna powinna również zawierać powyższą ścieżkę i, co ważne, przed każdą (jeśli istnieją) inną ścieżką, jeśli JDK / JRE już wspomniano wPATH
zmiennej. Możesz odinstalować inne wersje, jeśli żadna inna aplikacja nie używa innej wersji java.źródło
Jeśli masz zainstalowane jdk8 i jdk9, musisz sprawdzić, która wersja jest
w ścieżce i gdzie wskazuje JAVA_HOME.
W opublikowanym przez Ciebie dzienniku widzę, że JAVA_HOME prowadzi do JDK9.
zmodyfikuj swój globel JAVA_HOME env var na docelowy JDK8 lub możesz zmienić JAVA_HOME w PowerShell przed użyciem CLI cordova, jeśli chcesz używać jdk8 tylko dla cordova:
źródło
jeśli masz zainstalowanych wiele wersji Javy i chcesz je zachować, musisz sprawdzić następujące rzeczy:
źródło
Napotkałem ten sam problem z jdk1.8.0_201. Został rozwiązany, kiedy utworzyłem JAVA_HOME = C: \ Program Files \ Java \ jdk1.8.0_201 i dodałem „C: \ Program Files \ Java \ jdk1.8.0_201 \ bin” w zmienna ścieżki
źródło
Mam (Open) JDK 8 i 11 zainstalowane w systemie Windows 10 i miałem ten sam problem. U mnie zadziałało:
źródło
To stare pytanie, ale ponieważ miałem ten sam problem, ale błąd miał inne źródło, tutaj krótka odpowiedź.
Problem napotkał w systemie Windows (tylko) i z Webstorm IDE 2019.2
W wersji 2019.2 Webstorm wystąpił problem, ponieważ wewnętrznie używał otwartego jdk dla zmiennej% JAVA_HOME% zamiast docelowej (z systemu operacyjnego) java jdk.
W moim przypadku (tak, jest stary, to stary projekt cordova ...)
uruchamianie
java -version
w Windows cmd.exe:ale wykonując
java -version
w terminalu Webstorms:Wraz z wydaną później (dziś) łatką, w wersji 2019.2.1, pojawiła się poprawka. Teraz Webstorm używa zmiennej os% JAVA_HOME% tak, jak powinna, a dane
java -version
wyjściowe są identyczne w obu przypadkach.Mam nadzieję, że to komuś pomoże!
źródło
Ten błąd występuje, gdy domyślną ścieżką do języka Java jest ustawiona wersja inna niż Java 8 lub JDK 1.8. *
W moim przypadku zainstalowałem Javę 11 po zainstalowaniu Java 8
Możesz przetestować, uruchamiając:
W moim przypadku zwrócił:
Aby to naprawić, musimy upewnić się, że ścieżka java wskazuje zamiast tego pliki binarne Java 8
Zakładając, że masz już zainstalowaną Javę 8 lub JDK 1.8. *:
%JAVA_HOME%\bin
lubC:\Program Files\Java\jdk1.8.0_251\bin
%JAVA_HOME%\bin
PATH wskazujący na JDK 1.8. *Nie dodawaj ich, jeśli ich nie masz, znajdź inne wpisy PATH, które mogą nadpisać
%JAVA_HOME%\bin
%JAVA_HOME%\bin
%JAVA_HOME%\bin
PATH, która wskazuje na Javę 8, będzie miała teraz wyższy priorytet niż inne wpisy PATH, które wskazują na JDK 11W moim przypadku wrócił:
Naprawiony!
źródło
źródło
Wygląda na to, że Android SDK nie obsługuje Javy 9. Zmień wersję na 8, jeśli nie chcesz wracać do JDK 1.8, co jest dla mnie śmieszne. JDK 8 działa dla mnie, ale pamiętaj, aby ustawić zmienną środowiskową JAVA_HOME na lokalizację instalacji JDK poprawnie.
źródło
Zgodnie z oficjalną dokumentacją Cordova obsługuje tylko JDK 1.8 nie większy do daty (kwiecień 2018) . Albo może występować problem ze skryptem wykrywania wersji w kordowie.
Cordova: Instalowanie wymagań
źródło
Właśnie zmieniłem nazwę starszego folderu JDK na
_
, na wypadek, gdyby potrzebowałem go dalej, i zadziałało.źródło
Używam windowsa i mam dwie wersje jdk 1.8 i 14 coś ...
Napotkałem ten sam problem i po pewnym debugowaniu znajdź rozwiązanie.
I to rozwiązane
źródło
Ubuntu / Debian Linux wersja tej odpowiedzi jest instalacja openjdk 8 i ustawić domyślne poprzez
update-alternatives
# install (open)jdk 8 sudo apt-get install -y openjdk-8-jdk # update java compiler and set to 1.8 update-alternatives --config javac # update java runtime (optional) update-alternatives --config java # Also set $JAVA_HOME and $PATH to your .bashrc (optional) echo 'export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64' >> ~/.bashrc echo 'export PATH="$PATH:$JAVA_HOME/bin' >> ~/.bashrc # load in current bash session source ~/.bashrc
źródło