web-dev-qa-db-fra.com

Cordova: échec de la vérification des exigences pour JDK 1.8 ou supérieur

J'utilise Cordova 6.4.0 sous Windows 7, mais j'obtiens cette erreur une fois que j'ai essayé de créer la version Android:

 Issue description

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

57
MadNeox

Je pense avoir trouvé la solution du problème. Je posterai la réponse au cas où quelqu'un rencontrerait le même problème.

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

42
MadNeox

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é. 

Définissez maintenant la variable Java_HOME USER (et non la variable système) comme indiqué dans l'image ci-dessous.

 enter image description here

De cette façon, vous n'avez pas à désinstaller la version supérieure et le problème est résolu.

24
Rashmin Javiya

Ce qui a fonctionné, c’est de désinstaller jdk 9 et de réinstaller jkd 8.x

Sur Mac, pour désinstaller, allez au terminal et suivez ces étapes:

cd /Library/Java/JavaVirtualMachines

Sudo rm -rf jdk-9.0.1.jdk

Ensuite, installez jdk 8.x en téléchargeant le package .dmg à partir d’Oracle.

23
Bandito11

Désinstaller les anciennes versions de JDK aurait fonctionné. Mais je suppose que cela pourrait être une solution de contournement. J'ai rencontré le même problème et j'ai remarqué que la nouvelle version de JDK et l'ancienne version du chemin JDK ont été mentionnées dans la variable d'environnement 'path '.

Supprimer l’ancienne version du chemin JDK de la variable d’environnement 'path 'a été très utile. J'espère que ça aide aussi quelqu'un.

15
Gandhi

Sous Linux (Debian/Ubuntu), cela 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: répondant aux commentaires: Cela tient probablement au fait que les nouvelles installations Java de 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 this et this post pour plus d’informations.

10
oseiskar

J'ai découvert que ma variable d'environnement de chemin pointait vers Java 1.7 alors que Java_HOME pointait vers 1.8, alors j'ai modifié la variable de chemin en 1.8 et tout allait bien.

8
Iyke Perry

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 affiché C:\Program Files (x86)\Java\jdk1.7.0_55 avec le chemin Java.exe, j'ai changé la variable Java_HOME des variables d'environnement en C :\Program Files\Java\jdk1.8.0_20 & cela a fonctionné, il semble donc que j’ai eu 2 instances jdk et que Cordova a besoin de la version 1.8. * One.

7
Mawardy

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

J'ai jeté un coup d'oeil au 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 plateformes/Android/cordova/lib. à la ligne 220. Vous verrez une expression régulière et un commentaire laissé par l'équipe indiquant que Java 10 sera pris en charge à l'avenir.

L'expression régulière existante échouera si elle est exécutée avec 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é. en tant que 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 de JRE ou 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 pointant vers l'emplacement où les 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 marché?

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
7
K_Hoz

Ce message d'erreur rend l'utilisateur confus, l'écran de réussite comme ci-dessous.  cordova build success

Le message d'erreur oblige l'utilisateur à essayer de résoudre l'échec de la construction avec Java_HOME config . Mais le vrai problème ne réside pas uniquement dans Java_HOME.

Je résous ce problème avec une configuration correcte dans Java_HOME et un chemin dans "variable système" .  enter image description here

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

2
Bangyno

Parfois, changer le chemin et Java-home ne fonctionne pas. Vous devez ajouter

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

au chemin de la variable environnementale aussi.

2
Santosh

La réponse publiée par MadNeox est correcte.J'ai été confronté à un problème similaire Jdk 9 était installé ainsi que la version 1.8 

J'ai d'abord essayé en gardant jdk 9 et en supprimant 1.8, une erreur s'afficherait. La vérification des exigences a échoué

Ensuite, j'ai essayé de désinstaller jdk9 et de réinstaller 1. cette fois-ci, il était impossible de lancer javac-version

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

À ce stade, mon système n’a que la version jdk 1.8 Cordova: 7.1.0

Onglet Variables d’environnement ouvertes - Sous les variables utilisateur, créez une nouvelle variable PATH - donnez-lui la valeur suivante: C:\Program Files\Java\jdk1.8.0_151\bin (peut changer en fonction de l'emplacement d'installation jdk)

Cela devrait résoudre votre problème J'espère que cela vous aidera 

Bien que la réponse ait déjà été donnée, il m'a fallu un certain temps pour comprendre où j'allais mal, alors j'ai décidé de publier ceci en espérant que cela ferait gagner du temps à quelqu'un d'autre. 

2
Amey Bhivshet

C'est une vieille question, mais puisque je viens d'avoir le même problème, mais l'erreur avait une autre source, voici une réponse courte.

Problème rencontré sous Windows (uniquement) et avec le Webstorm IDE 2019.2

Dans la version 2019.2, Webstorm avait un problème, car il utilisait en interne open jdk pour la variable% Java_HOME% au lieu du (à partir de l'OS) ciblé Java jdk.

Dans mon cas (oui c'est vieux, c'est un vieux projet Cordova ...)

en exécutant Java -version dans Windows cmd.exe:

$ Java -version
Java version "1.8.0_221"

mais en exécutant Java -version dans Webstorms terminal:

$ Java -version
openjdk version "11.0.3" 2019-04-16
// more output

Un correctif est venu avec le correctif publié plus tard (aujourd'hui), version 2019.2.1. Maintenant, Webstorm utilise la variable os% Java_HOME% comme il se doit et la sortie Java -version est identique dans les deux cas.

J'espère que ça aide quelqu'un!

1
nilsK

Les gars pour obtenir le bon mélange sur Windows, vous devez procéder comme suit

  1. Téléchargez et installez n’importe quelle version de JDK 1.8 ou supé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 du JDK .C:\Program Files\Java\jdk1.8.0_162 Veillez à ne pas ajouter le \bin dans la valeur.

 enter image description here

  1. Dans votre variable de chemin système, mettez un point-virgule ; et ajoutez cette valeur au chemin 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 supposées être fermées par un ; avant d'en ouvrir un autre. C'est pourquoi nous en mettons un avant d'ajouter la valeur et un après la valeur pour la fermer. 

 enter image description here

  1. Maintenant, fermez le terminal et rouvrez puis exécutez les commandes précédentes.
1
das sanctity

Je suis d'accord avec @Hozington. Ceci devrait être le bogue sur le code de détection de la version Java de Cordova. Ce que j'ai fait est:

  1. Gardez le JDK 10
  2. Installez le JDK 8
  3. Remplacez Java_HOME par le chemin de JDK 8, ainsi que la variable path.
  4. redémarrez le "cmd" et exécutez à nouveau cordova build.

Et l'erreur a disparu!

1
ceeko

si plusieurs versions de Java sont installées et que vous devez les conserver, vous devez vérifier les points suivants:

  • Java_HOME pointant sur votre jdk1.8
  • dans votre variable PATH, vous devez vérifier que le chemin jdk1.8\bin est before les autres chemins jdk\bin
1
fehrlich

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

dans le chemin et où pointe Java_HOME.

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

modifiez votre variable globale Java_HOME env pour cibler JDK8 ou vous pouvez modifier Java_HOME dans powershell avant d'utiliser la CLI de cordova si vous souhaitez utiliser jdk8 uniquement pour cordova:

$env:Java_HOME="C:\Program Files\Java\jdk1.8.0_151"

**cordova build Android**
1
Bal mukund kumar

Je viens de renommer l'ancien dossier JDK avec _, juste au cas où j'en aurais besoin davantage, et cela a fonctionné.

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

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

0

J'ai rencontré le même problème avec jdk1.8.0_201.It a été résolu lorsque j'ai créé Java_HOME = C:\Program Files\Java\jdk1.8.0_201 et ajouté "C:\Program Files\Java\jdk1.8.0_201\bin" dans chemin variable

0
Samson Daniel

J'ai (Open) JDK 8 et 11 installé sur Windows 10 et j'ai eu le même problème. Pour moi, ce qui suit a fonctionné:

  1. Définissez Java_HOME pour qu'il pointe vers JDK 8. (Mentionné dans de nombreuses réponses auparavant.) AND
  2. Supprimez (!) JDK 11 du PATH car il est apparu que, même si le chemin d'accès Java_HOME pointant vers le JDK 8 était indiqué, Cordova a effectivement accédé au JDK 11 inclus dans PATH, ce qui a entraîné l'échec du contrôle de la version Java.
0
Dominik

Pour les utilisateurs d'ubuntu J'ai regardé les réponses mais cela m'a pris du temps pour trouver des solutions. Pour référence ultérieure, désinstallez l’installation Sudo par défaut à l’aide de la commande

Sudo rm -r /usr/lib/jvm/jdk10.0.2

remplacez le jdk ci-dessus par votre version que vous avez installée: 10.0.2! Ensuite, accédez au site Oracle et téléchargez le fichier tar.gz à partir de ici . Extrayez ensuite votre fichier dans le dossier home à le code ci-dessous en utilisant terminal

tar zxvf jdk-8u201-linux-x64.tar.gz

Remplacez votre Jdk, mais utilisez jdk1.8, comme le requiert Cordova, comme le précédent ci-dessus . Définissez ensuite vos variables d’environnement à l’aide du code ci-dessous.

gedit ~/.bashrc

L'éditeur de texte apparaîtra puis ajoutera cette exportation, c'est tout! Cela fonctionnera après le redémarrage de votre ordinateur

export Java_HOME=/home/abrsh/jdk1.8.0_201

Ici, sur le code ci-dessus, abrsh est mon nom d'utilisateur et jdk1.8.0_201 est le dossier que j'ai extrait précédemment à l'aide de tar zxvf

0
abrsh

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

Cordova: Installation de la configuration requise

0
Abhay Gawade

Même si je me suis assis correctement toutes les variables de chemin, j'ai quand même reçu ce message.

Après avoir beaucoup fouillé, je me suis rendu compte que mon IDE (webstorm 19.x) était fourni avec Java 11. Lire ceci: https: //intellij-support.jetbrains .com/hc/fr-fr/articles/206544879-Sélection-du-version-JDK-de-l'EDI-exécutable-sous m'a aidé à remettre le IDE en Java 8 qui a résolu le problème pour moi.

0
aryehrein

MAC: Accédez à:/Bibliothèque/Java/JavaVirtualMachines Assurez-vous de ne posséder que jdk1.8.0_201.jdk Si vous en avez beaucoup, supprimez les autres JDK.

0
Shelly Pritchard

Accédez au panneau de configuration, désinstallez l'ancien JDK, puis réinstallez-le à partir de https://www.Oracle.com/technetwork/Java/javase/downloads/jdk8-downloads-2133151.html

La question sera triée ..

0
OmkieIT Solutions

si vous avez plusieurs versions de JDK, vous pouvez exécuter

export Java_HOME="/usr/local/env/Java/jdk1.8.0_131.jdk/Contents/Home/"

avant de construire Cordova, utiliser une version spécifique de jdk :)

0
Walterwhites

Il semble que le SDK Android ne prend pas en charge Java 9. Déclassement à la version 8 si vous ne voulez pas revenir au JDK 1.8, ce qui pour moi est ridicule. JDK 8 fonctionne pour moi, mais veillez à définir correctement la variable d’environnement Java_HOME sur l’emplacement de votre installation JDK.

0
Dgoldenone

Assurez-vous simplement que les mêmes versions de JDK (c'est-à-dire 1.8 dans ce cas) sont accessibles à partir de la variable d'environnement PATH et de Java_HOME. Exemple: Si Java_HOME=C:\Program Files\Java\jdk1.8.0_152, alors PATH devrait également contenir le chemin ci-dessus et surtout avant tout autre chemin (s'il en existe) si JDK/JRE était 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.

0
Aim

si le problème persiste,

regarde ça :

  • Java_HOME fait référence à une version disponible pour cordova
  • point de variable 'path' sur votre jdk/bin (et le même jdk que votre Java_HOME)
0
R.one
  1. Aller au panneau de configuration
  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
0
Salvin