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:
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?
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
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.
De cette façon, vous n'avez pas à désinstaller la version supérieure et le problème est résolu.
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.
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.
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.
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.
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.
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:
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:
Ce message d'erreur rend l'utilisateur confus, l'écran de réussite comme ci-dessous.
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" .
Hope peut aider à résoudre le problème, mais ne réinstallez pas JDK.
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.
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.
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!
Les gars pour obtenir le bon mélange sur Windows, vous devez procéder comme suit
C:\Program Files\Java\jdk1.8.0_162
Veillez à ne pas ajouter le \bin
dans la valeur.;
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.
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:
Java_HOME
par le chemin de JDK 8, ainsi que la variable path
.cordova build
.Et l'erreur a disparu!
si plusieurs versions de Java sont installées et que vous devez les conserver, vous devez vérifier les points suivants:
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**
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
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.
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
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é:
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
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.
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.
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.
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 ..
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 :)
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.
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.
si le problème persiste,
regarde ça :