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:
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.
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.
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”.
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:
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:
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
C:\Program Files\Java\jdk1.8.0_162
assurez-vous de ne pas append le \bin
dans la valeur.
;
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.
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.
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.