Cordova : JDK 1.8 이상에 대한 요구 사항 확인 실패
Windows 7 OS에서 Cordova 6.4.0을 사용하고 있지만 Android 버전을 빌드하려고하면이 오류가 발생합니다.
Java Home 변수가 JDK 경로로 올바르게 설정되었지만이 문제가 발생하는 이유를 모르겠습니다. 어떤 제안이라도 제발?
문제의 해결책을 찾은 것 같습니다. 같은 문제에 직면 한 사람이있을 경우를 대비하여 답변을 게시하겠습니다.
1.8 설치 JDK 1.8을 포함한 모든 이전 JDK 제거
더 높은 버전의 sdk를 제거 할 필요가 없습니다. jdk1.8.0_161을 설치하거나 이미 설치되어 있으면 설치하지 마십시오.
이제 JAVA_HOME
아래 이미지와 같이 시스템 변수가 아닌 USER 변수를 설정하십시오 .
이렇게하면 더 높은 버전을 제거 할 필요가 없으며 문제가 해결됩니다.
효과가 있었던 것은 jdk 9를 제거하고 jkd 8.x를 다시 설치하는 것입니다.
Mac에서 제거하려면 터미널로 이동하여 다음 단계를 따르십시오.
cd /Library/Java/JavaVirtualMachines
sudo rm -rf jdk-9.0.1.jdk
그런 다음 Oracle에서 .dmg 패키지를 다운로드하여 jdk 8.x를 설치합니다.
Linux (Debian / Ubuntu)에서는 다음에서 Java 1.8 SDK를 선택하여 해결할 수 있습니다.
sudo update-alternatives --config javac
JAVA_HOME
env 변수를 직접 변경해 도 효과가없는 것 같습니다.
편집 : 의견에 응답 : 이것은 패키지 관리자를 통한 새로운 Debian (그리고 분명히 Ubuntu) Java 설치 JAVA_HOME
가 JRE의 위치를 결정하기 위해 환경 변수를 사용하지 않는다는 사실과 관련이있을 수 있습니다 . 참조 이 와 이 게시물을 추가 정보를 원하시면.
이전 버전의 JDK를 제거하면 효과가있을 것입니다. 그러나 그것은 내가 생각하는 해결 방법 일 수 있습니다. 나는 같은 문제에 직면했고 JDK의 새 버전과 이전 버전 JDK 경로가 'path
'환경 변수에 언급되어 있음을 알았습니다 .
'path
'환경 변수 에서 이전 버전의 JDK 경로를 제거하는 것이 나에게 트릭이었습니다. 누군가에게도 도움이되기를 바랍니다.
8보다 큰 버전이있을 수 있지만 Cordova는 JDK 1.8 만 지원합니다. 이 링크보기 Cordova 문서
실제로 Java의 버전 번호를 확인하는 코드를 살펴 보았습니다. 다음을 찾아 module.exports.check_java 에서 플랫폼 / 안드로이드 / 코르도바 / lib 디렉토리 . 온라인 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- 환경 변수를 업데이트합니다.
- JDK를 설치 한 경우 JAVA_HOME
- JRE를 설치 한 경우 JRE_HOME
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
새 터미널 세션을 열고 실패한 명령을 실행하십시오. 이제 작동합니다.
작동하지 않았다?
다른 이유로 실패 할 경우 가능한 디버깅 프로세스 :
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. * 하나가 필요합니다.
@Hozington에 동의합니다. 이것은 Java 버전을 감지하는 Cordova 코드의 버그입니다. 내가 한 일은 :
- JDK 10 유지
- JDK 8 설치
- 변경
JAVA_HOME
JDK 8의 경로 및 변경path
뿐만 아니라 변수를. - "cmd"를 다시 시작하고
cordova build
다시 실행 하십시오.
그리고 오류가 사라졌습니다!
MAC : 다음으로 이동하십시오. : / Library / Java / JavaVirtualMachines jdk1.8.0_201.jdk 만 있는지 확인하십시오. 많은 경우 다른 JDK를 제거하십시오.
이 오류 메시지는 다음과 같은 성공 화면을 사용자에게 혼란스럽게 만듭니다.
오류 메시지는 사용자가 JAVA_HOME 구성으로 빌드 실패를 수정하려고합니다. 그러나 진짜 문제는 JAVA_HOME에만있는 것이 아닙니다.
JAVA_HOME의 올바른 구성과 "시스템 변수"의 경로로이 문제를 해결합니다.
Hope는 문제를 해결하는 데 도움이 될 수 있지만 JDK를 다시 설치하지는 않습니다.
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를 설치 한 위치에 따라 변경 될 수 있음)
문제가 해결 될 것입니다.
대답이 이미 주어졌지만 내가 어디로 잘못 가고 있는지 알아내는 데 시간이 좀 걸렸기 때문에 다른 사람의 시간을 절약 할 수 있기를 바라며 이것을 게시하기로 결정했습니다.
때때로 경로를 변경하고 java-home
작동하지 않습니다. 추가해야합니다.
C:\Users\[your user]\AppData\Local\Android\Sdk\platform-tools
C:\Users\[your user]\AppData\Local\Android\Sdk\tools
환경 변수 경로에도 적용됩니다.
PATH
환경 변수 및 에서 동일한 JDK 버전 (이 경우 1.8)에 액세스 할 수 있는지 확인하십시오 JAVA_HOME
. 예 : 만약 JAVA_HOME=C:\Program Files\Java\jdk1.8.0_152
그렇다면 PATH
변수가 위의 경로를 포함해야하고 중요한 것은 JDK / JRE가 PATH
변수에 이미 언급 된 경우의 다른 경로 (있는 경우) 앞에 있어야 합니다. 다른 응용 프로그램이 다른 버전의 Java를 사용하지 않는 경우 다른 버전을 제거하도록 선택할 수 있습니다.
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 에서 믹스를 제대로 하려면 다음을 수행해야합니다.
- JDK 1.8 이상의 모든 버전을 다운로드하여 설치합니다 .
- 환경 변수를 열고 JAVA_HOME 이라는 환경 변수를 만들고 값을 JDK 설치 경로로 설정합니다. 값
C:\Program Files\Java\jdk1.8.0_162
에을 추가하지 마십시오\bin
.
- 시스템 경로 변수에 세미콜론
;
을 입력하고이 값을 시스템 경로 에 추가합니다 ( 예 :C:\Program Files\Java\jdk1.8.0_162\bin;
여기에\bin
추가됨).
참고 : 환경 변수는 까다 롭습니다 .; 다른 것을 열기 전에. 그렇기 때문에 값을 추가하기 전에 하나를, 값 뒤에 하나를 넣어 닫습니다.
- 이제 터미널을 닫고 다시 연 다음 이전 명령을 실행하십시오.
if you have multiple Java versions installed and need to keep those, you need to check following things:
- JAVA_HOME pointing to your jdk1.8
- in your PATH variable you need to check that jdk1.8\bin path is before the other jdk\bin paths
if you have many version of JDK you can run
export JAVA_HOME="/usr/local/env/java/jdk1.8.0_131.jdk/Contents/Home/"
before cordova build, to use a specific version of jdk :)
I faced the same issue with jdk1.8.0_201.It got resolved when I made JAVA_HOME=C:\Program Files\Java\jdk1.8.0_201 and added "C:\Program Files\Java\jdk1.8.0_201\bin" in path variable
It's an old question, but since i just had the same problem, but the error had another source, here a short answer.
Problem accured on Windows (only) and with the Webstorm IDE 2019.2
In the version 2019.2 Webstorm had an issue, because it internally used open jdk for the %JAVA_HOME% variable instead of the (from the os) targeted java jdk.
In my case (yeah it's old, it's an old cordova project ... )
executing java -version
in Windows cmd.exe:
$ java -version
java version "1.8.0_221"
but executing java -version
in Webstorms terminal:
$ java -version
openjdk version "11.0.3" 2019-04-16
// more output
A fix came with the patch released later (today), version 2019.2.1. Now Webstorm uses the os %JAVA_HOME% variable as it should and the java -version
output is identical in both cases.
Hope it helps someone!
- Go to Control panel Home
- Advanced System Settings
- Environment Variables
- Choose JAVA_HOME
- edit
- variable value for the 1.8 one
It seems the Android SDK don't support Java 9. Downgrade to 8 if you dont want to go all the way back to JDK 1.8 which to me is ridiculous. JDK 8 work for me but be sure to set the JAVA_HOME environment variable to the location of your JDK installation correctly.
As per official Cordova documentation it supports only JDK 1.8 not greater till the date (April 2018). Or there might be problem with version detection script within cordova.
Cordova: Installing the requirements
I just renamed older JDK folder with _
, just in case if I need it further, and it worked.
C:\Program Files (x86)\Java\_jdk1.7.0_40
C:\Program Files (x86)\Java\_jre7
I un-installed all Java installations and re-installed jdk-8u181-windows-x64. It's worked for me to avoid this issue.
if problem persist,
check that :
- JAVA_HOME refer to a available version for cordova
- 'path' variable point on your jdk/bin (and the same jdk as your JAVA_HOME)
I have (Open)JDK 8 and 11 installed on Windows 10 and I had the same problem. For me the following worked:
- Set JAVA_HOME to point to JDK 8. (Mentioned in many answers before.) AND
- Remove(!) JDK 11 from the PATH as it turned out that -- although displaying the JAVA_HOME path pointing to JDK 8 -- Cordova actually accessed JDK 11 that was included in the PATH, which made the Java version check fail.
Even if I sat all path variable correctly I still got this message.
After digging a lot I figured out that my IDE (webstorm 19.x) is bundled with java 11. Reading this: https://intellij-support.jetbrains.com/hc/en-us/articles/206544879-Selecting-the-JDK-version-the-IDE-will-run-under helped me switch the IDE back to java 8 which solved the problem for me.
For ubuntu users I have been watching answers but it took my time to gather solutions. For future reference uninstall the default sudo install by using the command
sudo rm -r /usr/lib/jvm/jdk10.0.2
replace the above jdk with your version which you installed mine was 10.0.2! Then go the oracle site and download the tar.gz from here . Then extract your file in home
folder using the code below using terminal
tar zxvf jdk-8u201-linux-x64.tar.gz
Jdk를 교체하되 위와 같은 cordova에서 필요하므로 jdk1.8을 사용하십시오. 그런 다음 아래 코드를 사용하여 환경 변수를 설정하십시오.
gedit ~/.bashrc
텍스트 편집기가 나타나면이 내보내기가 추가됩니다! 컴퓨터를 다시 시작하면 작동합니다.
export JAVA_HOME=/home/abrsh/jdk1.8.0_201
위의 코드에서 abrsh는 내 사용자 이름이고 jdk1.8.0_201은 이전에 사용하여 추출한 폴더입니다. tar zxvf
'Development Tip' 카테고리의 다른 글
HTML에서 href 대신 JavaScript 함수를 호출하는 방법 (0) | 2020.10.20 |
---|---|
JQuery Ajax Post 결과 500 내부 서버 오류 발생 (0) | 2020.10.20 |
한 프로젝트의 spring-config.xml을 다른 프로젝트의 spring-config.xml로 가져 오는 방법은 무엇입니까? (0) | 2020.10.20 |
Android Studio-디버그 대신 릴리스 APK 배포 (0) | 2020.10.20 |
UIPickerView가로드 된 후 행 선택 (0) | 2020.10.20 |