Cordova: vérification des exigences a échoué pour JDK 1.8 ou supérieur

J’utilise Cordova 6.4.0 sous Windows 7 OS, mais je reçois cette erreur une fois que j’ai essayé de construire la version Android:

Description du problème

La variable Java Home est correctement configurée sur le chemin JDK, mais je ne sais pas pourquoi je rencontre ce problème. Des suggestions s’il vous plaît?

Je pense avoir trouvé la solution du problème. Je posterai la réponse juste au cas où quelqu’un serait confronté au même problème.

Désinstallez tous les JDK précédents, y compris 1.8 Installez JDK 1.8

Ce qui a fonctionné pour désinstaller jdk 9 et réinstaller jkd 8.x

Sur Mac afin de désinstaller allez sur le terminal et suivez ces étapes:

 cd /Library/Java/JavaVirtualMachines sudo rm -rf jdk-9.0.1.jdk 

Installez ensuite le fichier jdk 8.x en téléchargeant le package .dmg d’Oracle.

Vous n’avez pas besoin de désinstaller une version supérieure de SDK. installez simplement jdk1.8.0_161 ou ne le faites pas s’il est déjà installé.

Maintenant, il suffit de définir la variable USER JAVA_HOME (pas la variable système) comme indiqué dans l’image ci-dessous.

entrer la description de l'image ici

De cette façon, vous n’avez pas à désinstaller les versions supérieures et le problème est résolu.

La désinstallation des anciennes versions de JDK aurait fonctionné. Mais ce peut être une solution de contournement, je suppose. J’ai fait face au même problème et j’ai remarqué que la nouvelle version de JDK et l’ancienne version du chemin JDK avaient été mentionnées dans la variable d’environnement 'path ‘.

La suppression de l’ancienne version du chemin JDK de la variable d’environnement 'path » a fait l’affaire pour moi. J’espère que ça aide aussi quelqu’un.

J’ai découvert que la variable d’environnement de mon chemin indiquait java 1.7 alors que JAVA_HOME indiquait 1.8, j’ai donc modifié la variable de chemin d’access à 1.8 et je me suis bien débrouillée.

dans mon cas, JAVA_HOME pointait vers C: \ Program Files (x86) \ Java \ jdk1.7.0_55

quand j’ai écrit où java dans cmd il a sorti C: \ Program Files (x86) \ Java \ jdk1.7.0_55 avec le chemin java.exe, j’ai changé la variable JAVA_HOME de variables d’environnement en C: \ Program Files \ Java \ jdk1.8.0_20 & cela a fonctionné, il semble donc que j’ai eu 2 instances de jdk et que Cordova a besoin de la version v1.8. *.

Dans Linux (Debian / Ubuntu), ceci peut être résolu en sélectionnant un SDK Java 1.8 dans

 sudo update-alternatives --config javac 

Changer directement la variable JAVA_HOME env ne semble pas avoir d’effet.

EDIT: en réponse aux commentaires: Cela a probablement quelque chose à voir avec le fait que les nouvelles installations Java Debian (et apparemment Ubuntu) via le gestionnaire de paquets n’utilisent pas la variable d’environnement JAVA_HOME pour déterminer l’emplacement du JRE. Voir ceci et ce post pour plus d’informations.

Ce message d’erreur rend l’utilisateur confus, l’écran de succès comme ci-dessous. Cordova construire le succès

Le message d’erreur demande à l’utilisateur d’essayer de résoudre l’échec de la génération avec la configuration JAVA_HOME. Mais le vrai problème ne réside pas seulement dans le JAVA_HOME.

Je corrige ce problème avec une configuration correcte dans JAVA_HOME et Path dans “variable système”. entrer la description de l'image ici

Hope peut aider à résoudre le problème, mais pas à réinstaller JDK.

La réponse publiée par MadNeox est correcte. Je faisais face à un problème similaire sur lequel jdk 9 était installé, ainsi que la version 1.8

J’ai d’abord essayé en gardant jdk 9 et en supprimant 1.8 il afficherait une erreur

Ensuite, j’ai essayé en désinstallant jdk9 et en réinstallant 1. cette fois, il a montré échoué à exécuter javac-version

Après avoir joué avec les variables d’environnement pendant quelque temps, j’ai finalement trouvé la solution

À ce stade, mon système ne dispose que de la version jdk 1.8 Cordova: 7.1.0

-Onglet Variables d’environnement -Univers des variables utilisateur crée une nouvelle variable PATH -Donne la valeur suivante C: \ Program Files \ Java \ jdk1.8.0_151 \ bin (peut changer selon l’endroit où vous avez installé votre jdk)

Cela devrait résoudre votre problème J’espère que ça aide

Bien que la réponse ait déjà été donnée, il m’a fallu du temps pour comprendre où j’allais mal, alors j’ai décidé de poster ce message en espérant que cela sauverait le temps de quelqu’un d’autre.

Vous pouvez avoir une version supérieure à 8 mais Cordova ne prend en charge que JDK 1.8. Voir ce lien Documentation Cordova

J’ai regardé le morceau de code qui vérifie réellement le numéro de version de votre Java. Recherchez les éléments suivants: module.exports.check_java dans les plates-formes / android / cordova / lib . sur la ligne 220. Vous verrez une expression rationnelle et le commentaire laissé par l’équipe que Java 10 sera supporté dans le futur.

L’expression régulière existante échouera lorsqu’elle est exécutée sur les dernières versions de Java telles que Java 10. En effet, Java 8 ou 9 sont enregistrés au format suivant: 1. [8-9]. ** mais Java 10 est enregistré comme 10. ** et l’expression régulière recherche une version au format 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); 

Ma solution:

Vous n’avez pas besoin de désinstaller votre version actuelle du JRE ou du JDK car le programme d’installation installe chaque version dans un dossier spécifique.

1- Installer la version Java 8 Suivez ce lien

2- Mettez à jour vos variables d’environnement:

  • JAVA_HOME si vous avez installé le JDK
  • JRE_HOME si vous avez installé le JRE

en les dirigeant vers l’emplacement où JRE 8 et JDK 8 ont été installés.

 // On my machine C:\Program Files\Java\jdk1.8.0_171 // JAVA_HOME C:\Program Files\Java\jre1.8.0_171 // JRE_HOME 

Ouvrez une nouvelle session de terminal et exécutez la commande qui échouait. Cela devrait fonctionner maintenant.

N’a pas fonctionné?

En cas d’échec pour d’autres raisons, processus de débogage possible:

  • Assurez-vous que les variables JAVA_HOME et JRE_HOME sont des variables système.
  • Assurez-vous qu’ils sont ajoutés au chemin de votre utilisateur Ajoutez des variables au chemin d’access

Si vous avez installé jdk8 et jdk9, vous devez vérifier quelle version est

dans le chemin et où JAVA_HOME pointe vers.

Dans le journal que vous avez posté, je vois que JAVA_HOME mène au JDK9.

modifiez votre globel JAVA_HOME env var pour cibler JDK8 ou vous pouvez changer JAVA_HOME dans powershell avant d’utiliser l’interface CLI Cordova si vous souhaitez utiliser jdk8 uniquement pour cordova:

 $env:JAVA_HOME="C:\Program Files\Java\jdk1.8.0_151" **cordova build android** 

Les gars pour obtenir le mix directement sur Windows , vous devez faire ce qui suit

  1. Téléchargez et installez toute version de JDK 1.8 ou ultérieure.
  2. Ouvrez les variables d’environnement, créez une variable d’environnement appelée JAVA_HOME et définissez la valeur sur le chemin d’installation de JDK. C:\Program Files\Java\jdk1.8.0_162 assurez-vous de ne pas append le \bin dans la valeur.

entrer la description de l'image ici

  1. Dans votre variable de chemin système, mettez un point-virgule ; et ajoutez cette valeur au chemin du système, par exemple C:\Program Files\Java\jdk1.8.0_162\bin; Ici, le \bin est ajouté.

Note: Les variables d’environnement sont délicates. Elles sont censées être fermées par un ; avant d’ouvrir un autre. C’est pourquoi nous en mettons un avant d’append la valeur et un après la valeur pour le fermer.

entrer la description de l'image ici

  1. Fermez maintenant le terminal et rouvrez-le, puis exécutez les commandes précédentes.

Parfois, changer de chemin et de java-home ne fonctionne pas. Vous devez append

 C:\Users\[your user]\AppData\Local\Android\Sdk\platform-tools C:\Users\[your user]\AppData\Local\Android\Sdk\tools 

à la variable de l’environnement également.

Assurez-vous simplement que les mêmes versions de JDK (c.-à-d. 1.8 dans ce cas) sont accessibles depuis la variable d’environnement PATH et JAVA_HOME . Exemple: Si JAVA_HOME=C:\Program Files\Java\jdk1.8.0_152 alors la variable PATH doit également contenir le chemin ci-dessus et avant tout autre chemin (le cas échéant) de si JDK / JRE déjà mentionné dans la variable PATH . Vous pouvez choisir de désinstaller d’autres versions si aucune autre application n’utilise une version différente de Java.

  1. Aller au panneau de contrôle
  2. Réglages avancés du système
  3. Variables d’environnement
  4. Choisissez JAVA_HOME
  5. modifier
  6. valeur variable pour le 1,8

Il semble que le SDK Android ne supporte pas Java 9. Revenez à 8 si vous ne voulez pas revenir à JDK 1.8, ce qui est ridicule pour moi. JDK 8 fonctionne pour moi, mais veillez à définir correctement la variable d’environnement JAVA_HOME sur l’emplacement de votre installation JDK.

Selon la documentation officielle de Cordova, il ne prend en charge que JDK 1.8, qui n’est pas plus grand jusqu’à la date (avril 2018) . Ou il pourrait y avoir un problème avec le script de détection de version dans Cordova.

Cordova: Installation des exigences

Je viens de renommer l’ancien dossier JDK avec _ , juste au cas où j’en aurais besoin, et cela fonctionnait.

 C:\Program Files (x86)\Java\_jdk1.7.0_40 C:\Program Files (x86)\Java\_jre7 

J’ai désinstallé toutes les installations Java et réinstallé jdk-8u181-windows-x64. Cela a fonctionné pour moi pour éviter ce problème.