Windows 7 OS에서 Cordova 6.4.0을 사용하고 있지만 Android 버전을 빌드하려고하면이 오류가 발생합니다.
Java Home 변수가 JDK 경로로 올바르게 설정되었지만이 문제가 발생하는 이유를 모르겠습니다. 어떤 제안이라도 제발?
답변:
1.8 설치 JDK 1.8을 포함한 모든 이전 JDK 제거
Add or Remove Programs/Program Features
됩니다 Windows OS
. 다음으로 이전 Java 버전을 제거하십시오. 나는했다 version 7
또한 설치 후 uninstalling
그것을, cordova run android
했다. 행운을 빕니다.
Linux (Debian / Ubuntu)에서는 다음 위치에서 Java 1.8 SDK를 선택하여 해결할 수 있습니다.
sudo update-alternatives --config javac
JAVA_HOME
env 변수를 직접 변경해 도 효과가없는 것 같습니다.
편집 : 의견에 응답 : 이것은 패키지 관리자를 통한 새로운 Debian (그리고 분명히 Ubuntu) Java 설치 JAVA_HOME
가 JRE의 위치를 결정하기 위해 환경 변수를 사용하지 않는다는 사실과 관련이있을 수 있습니다 . 참조 이 와 이 게시물을 추가 정보를 원하시면.
java
했지만 그렇지 않았습니다 javac
! 이제 Java 9를 제거 할 필요가 없습니다. :)
JAVA_HOME
오른쪽 1.8 JDK를 가리키고 있었지만 시스템 기본값 업데이트 만 Cordova를 충족했습니다.
효과가 있었던 것은 jdk 9를 제거하고 jkd 8.x를 다시 설치하는 것입니다.
Mac에서 제거하려면 터미널로 이동하여 다음 단계를 따르십시오.
cd /Library/Java/JavaVirtualMachines
sudo rm -rf jdk-9.0.1.jdk
그런 다음 Oracle에서 .dmg 패키지를 다운로드하여 jdk 8.x를 설치합니다.
8보다 큰 버전이있을 수 있지만 Cordova는 JDK 1.8 만 지원합니다. 이 링크보기 Cordova 문서
실제로 Java의 버전 번호를 확인하는 코드를 살펴 보았습니다. 다음을 찾아 module.exports.check_java 에서 플랫폼 / 안드로이드 / 코르도바 / lib 디렉토리 / check_reqs.js . 온라인 220. Java 10이 향후 지원 될 것이라는 팀이 남긴 정규식과 주석을 볼 수 있습니다.
Java 10과 같은 최신 버전의 Java에 대해 실행하면 기존 정규식이 실패합니다. 이는 Java 8 또는 9가 1. [8-9]. ** 형식으로 저장되지만 Java 10은 저장되기 때문입니다. 10. **로 정규식은 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);
내 솔루션 :
설치 프로그램이 특정 폴더에 각 버전을 설치하므로 현재 버전의 JRE 또는 JDK를 제거 할 필요가 없습니다.
1- 버전 Java 8 설치이 링크를 따르십시오.
2- 환경 변수를 업데이트합니다.
JRE 8 및 JDK 8이 설치된 위치를 가리 키도록합니다.
// On my machine
C:\Program Files\Java\jdk1.8.0_171 // JAVA_HOME
C:\Program Files\Java\jre1.8.0_171 // JRE_HOME
새 터미널 세션을 열고 실패한 명령을 실행하십시오. 이제 작동합니다.
작동하지 않았다?
다른 이유로 실패 할 경우 가능한 디버깅 프로세스 :
이전 버전의 JDK를 제거하면 효과가있을 것입니다. 그러나 그것은 내가 생각하는 해결 방법 일 수 있습니다. 나는 같은 문제에 직면했고 JDK의 새 버전과 이전 버전의 JDK 경로가 'path
'환경 변수에 언급되어 있음을 알았습니다 .
'path
'환경 변수 에서 이전 버전의 JDK 경로를 제거하는 것이 나에게 트릭이었습니다. 누군가에게도 도움이되기를 바랍니다.
JAVA_HOME이 1.8을 가리키는 동안 내 경로 환경 변수가 java 1.7을 가리키는 것을 발견했기 때문에 경로 변수를 1.8로 편집하고 괜찮 았습니다.
제 경우에는 JAVA_HOME이 C : \ Program Files (x86) \ Java \ jdk1.7.0_55를 가리 켰습니다.
cmd 에서 java 를 작성했을 때 java.exe 경로와 함께 C : \ Program Files (x86) \ Java \ jdk1.7.0_55 출력, JAVA_HOME 변수를 환경 변수에서 C : \ Program Files \ Java로 변경했습니다. \ jdk1.8.0_20 & 그것은 작동했기 때문에 2 개의 jdk 인스턴스가 있고 cordova에는 v1.8. * 하나가 필요합니다.
JDK 버전이 많은 경우 실행할 수 있습니다.
export JAVA_HOME="/usr/local/env/java/jdk1.8.0_131.jdk/Contents/Home/"
cordova 빌드 전에 특정 버전의 jdk를 사용하려면 :)
Windows 에서 믹스를 올바르게 하려면 다음을 수행해야합니다.
C:\Program Files\Java\jdk1.8.0_162
에을 추가하지 마십시오 \bin
.;
을 입력하고이 값을 시스템 경로 에 추가합니다 ( 예 : C:\Program Files\Java\jdk1.8.0_162\bin;
여기에 \bin
추가됨).참고 : 환경 변수는 까다 롭습니다 .; 다른 것을 열기 전에. 그렇기 때문에 값을 추가하기 전에 하나를, 값 뒤에 하나를 넣어 닫습니다.
오늘 Cordova : Requirements check failed for JDK 1.8 or greater
명령을 실행할 때 Ionic 앱을 빌드하는 동안 Mac OS 에서도이 오류가 발생 했습니다.ionic cordova build --release android
터미널을 통해 을 .
아래 명령은 내 문제를 해결합니다.
export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_231.jdk/Contents/Home"
앞으로 누군가를 도울 수 있기를 바랍니다!
$ ls -l /Library/Java/JavaVirtualMachines/
$ ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_261.jdk/Contents/Home/bin/javac /usr/local/bin/javac
$ ln -s /Library/Java/JavaVirtualMachines/jdk-11.0.7.jdk/Contents/Home/bin/javac /usr/local/bin/javac
메시지 내용에도 불구하고 버전 1.8을 원한다는 의미로 나타나며 이후 버전 이있는 경우이 메시지를 표시합니다 .
다음은 위의 답변으로 이끄는 이전 시도입니다. 그러면 작동했습니다 ... 설치된 항목에 따라 다른 작업을 수행해야 할 수도 있으므로 다음 메모가 도움이 될 수 있습니다.
내 jdk1.8 버전으로 설정
$ export PATH=/Library/Java/JavaVirtualMachines/jdk-11.0.7.jdk/Contents/Home/bin/javac:$PATH
내 jdk11 버전으로 설정
$ export PATH=/Library/Java/JavaVirtualMachines/jdk1.8.0_261.jdk/Contents/Home/bin/javac:$PATH
...하지만 실제로는 작동하지 않습니다 /usr/bin/javac
.
$ which javac
/usr/bin/javac
... 경로에서 먼저 실행되는 항목을 보려면 다음을 수행하십시오.
$ cat /etc/paths
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
즉, /usr/bin/javac
...을 재정의 할 수 있습니다 ... 답변 상단의 명령을 참조하십시오 ... 이 답변 상단
의을 사용하여 jdk1.8로 설정하는 명령이 저에게 효과적 ln
입니다.
MadNeox가 게시 한 답변은 정확합니다. jdk 9와 1.8 버전을 설치 한 비슷한 문제에 직면했습니다.
먼저 jdk 9를 유지하고 1.8을 제거하면 오류가 표시됩니다 .Requirements check failed
그런 다음 jdk9를 제거하고 1을 다시 설치했습니다. 이번에는 javac-version을 실행하지 못했습니다.
얼마 동안 환경 변수를 가지고 놀다가 마침내 해결책을 얻었습니다.
이 시점에서 내 시스템에는 jdk 1.8 Cordova 버전 : 7.1.0 만 있습니다.
-환경 변수 탭 열기-사용자 변수 아래에서 새 변수 PATH 생성-다음 값을 제공합니다. C : \ Program Files \ Java \ jdk1.8.0_151 \ bin (jdk를 설치 한 위치에 따라 변경 될 수 있음)
문제가 해결 될 것입니다.
대답이 이미 주어졌지만 내가 어디로 잘못 가고 있는지 알아내는 데 시간이 좀 걸렸기 때문에 다른 사람의 시간을 절약 할 수 있기를 바라며 이것을 게시하기로 결정했습니다.
jdk8과 jdk9가 모두 설치되어있는 경우 버전이 다음과 같은지 확인해야합니다.
경로 및 JAVA_HOME이 가리키는 위치.
게시 한 로그에서 JAVA_HOME이 JDK9로 연결되는 것을 확인했습니다.
globel JAVA_HOME 환경 변수를 JDK8을 대상으로 수정하거나 cordova에만 jdk8을 사용하려는 경우 cordova CLI를 사용하기 전에 powershell에서 JAVA_HOME을 변경할 수 있습니다.
$env:JAVA_HOME="C:\Program Files\Java\jdk1.8.0_151"
**cordova build android**
오래된 질문이지만 동일한 문제가 있었기 때문에 오류에는 다른 소스가 있습니다. 여기에 짧은 대답이 있습니다.
Windows (전용) 및 Webstorm IDE 2019.2에서 발생한 문제
버전 2019.2에서 Webstorm은 내부적으로 (OS에서) 대상 Java jdk 대신 % JAVA_HOME % 변수에 대해 open jdk를 사용했기 때문에 문제가있었습니다.
제 경우에는 (예, 오래된 코르도바 프로젝트입니다 ...)
java -version
Windows cmd.exe에서 실행 :
$ java -version
java version "1.8.0_221"
그러나 java -version
Webstorms 터미널에서 실행 :
$ java -version
openjdk version "11.0.3" 2019-04-16
// more output
나중에 (오늘) 릴리스 된 패치 2019.2.1과 함께 수정 사항이 제공되었습니다. 이제 Webstorm은 os % JAVA_HOME % 변수를 그대로 사용하고java -version
두 경우 모두 출력이 동일합니다.
누군가에게 도움이되기를 바랍니다!
Java에 대한 기본 경로가 Java 8 또는 JDK 1.8. * 이외의 버전으로 설정된 경우 오류가 발생합니다.
제 경우에는 Java 8을 설치 한 후 Java 11을 설치했습니다.
다음을 실행하여 테스트 할 수 있습니다.
java -version
내 경우에는 다음과 같이 반환되었습니다.
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)
이 문제를 해결하려면 Java 경로가 대신 Java 8 바이너리를 가리키는 지 확인해야합니다.
Java 8 또는 JDK 1.8. *가 이미 설치되어 있다고 가정합니다.
%JAVA_HOME%\bin
또는 C:\Program Files\Java\jdk1.8.0_251\bin
추가 되었는지 확인하십시오.%JAVA_HOME%\bin
JDK 1.8. *을 가리키는 PATH를 재정의합니다 .이 항목이 없으면 추가하지 말고 재정의 할 수있는 다른 PATH 항목을 찾으십시오. %JAVA_HOME%\bin
%JAVA_HOME%\bin
%JAVA_HOME%\bin
이제 Java 8을 가리키는 PATH가 JDK 11을 가리키는 다른 PATH 항목보다 우선합니다.
java -version
내 경우에는 다음과 같이 반환되었습니다.
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)
결정된!
Android SDK는 Java 9를 지원하지 않는 것 같습니다. JDK 1.8로 돌아가고 싶지 않다면 8로 다운 그레이드하세요. JDK 8이 저에게 적합하지만 JAVA_HOME 환경 변수를 JDK 설치 위치로 올바르게 설정하십시오.
공식 Cordova 문서에 따라 날짜 (2018 년 4 월)까지 JDK 1.8 만 지원합니다. . 또는 Cordova 내의 버전 감지 스크립트에 문제가있을 수 있습니다.
이 답변 의 Ubuntu / Debian Linux 버전은 openjdk 8을 설치하고 다음을 통해 기본값을 설정하는 것입니다.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