2017-10-18 2 views
0

En raison de this issue, Cordova n'est pas en mesure de fonctionner sur Java 9 (veuillez me corriger si je me trompe). Une question similaire a été discutée here, mais les solutions proposées impliquent la suppression de Java 9, ou la réinitialisation de la variable d'environnement JAVA_HOME pour pointer vers Java 8, mais les deux ont l'effet secondaire que toutes les autres applications Java s'exécuteront sur Java 8.Cordova ne fonctionne pas avec Java 9. Comment définir un jdk spécifique UNIQUEMENT pour Cordova?

Alors, comment voulez-vous que Cordova utilise Java 8, le reste des applications étant toujours sur Java 9?

Répondre

2

... the reset of the JAVA_HOME environment variable to point to Java 8, but [that] has the side effect that all the other Java applications will run on Java 8.

Seulement si vous le faites dans le mauvais sens!

Créez un fichier (disons mycordova.sh) contenant ceci, rendez-le exécutable et placez-le sur le chemin de recherche de commande de votre shell.

#!/bin/sh 
export JAVA_HOME=/path/to/java8/home 
cordova "[email protected]" 

L'exécution de cette commande exécute cordova en utilisant Java 8 sans interférer avec d'autres applications.


MISE À JOUR - Si le travail autour proposé est d'utiliser alternatives changer, cela signifie que le lanceur cordova/script, n'utilise pas JAVA_HOME pour trouver la commande java. Vous pouvez gérer cela aussi. Il y a deux possibilités:

  • Si cordova est un script d'emballage, puis copiez et le modifier pour utiliser la version de la commande java (etc) que vous souhaitez utiliser.

  • Si pas alors dans votre script mycordova.sh (voir ci-dessus) mettent également à jour la variable PATH de telle sorte que le répertoire Java 8 JRE bin est en avance sur le répertoire contenant le lien java que alternatives gère. Cela fonctionnera ... à condition que le lanceur standard cordova n'a pas câblé /usr/bin/java


MISE À JOUR 2 - script final pour mycordova.sh est:

#!/bin/sh 
export JAVA_HOME=/path/to/java8/home 
export PATH=/path/to/java8/bin/:$PATH 
cordova "[email protected]" 
+0

Mon mauvais, comme discuté dans la question liée, la réinitialisation du JAVA_HOME ne suffit pas, il faut un 'sudo update-alternatives --config javac' ou dans mon cas un' sudo archlinux-java set java-8-openjdk'. a estimé que, cette sortie de la solution suivante: 'mycordova.sh $ run android' ' ANDROID_HOME =/home/myhome/devel/Android/Sdk' 'JAVA_HOME =/usr/lib/jvm/java-8-OpenJDK ' ' Erreur: Échec de la vérification des exigences pour JDK 1.8 ou supérieur' – oidualc