【发布时间】:2017-10-18 10:07:01
【问题描述】:
由于this issue,目前 Cordova 无法在 Java 9 上运行(如果我错了,请纠正我)。
here 讨论了类似的问题,但建议的解决方案涉及删除 Java 9,或将 JAVA_HOME 环境变量重置为指向 Java 8,但两者都有副作用,所有其他 Java 应用程序都会在 Java 8 上运行。
那么如何设置 Cordova 以使用 Java 8,而其余应用程序仍在 Java 9 上?
【问题讨论】:
由于this issue,目前 Cordova 无法在 Java 9 上运行(如果我错了,请纠正我)。
here 讨论了类似的问题,但建议的解决方案涉及删除 Java 9,或将 JAVA_HOME 环境变量重置为指向 Java 8,但两者都有副作用,所有其他 Java 应用程序都会在 Java 8 上运行。
那么如何设置 Cordova 以使用 Java 8,而其余应用程序仍在 Java 9 上?
【问题讨论】:
... 将
JAVA_HOME环境变量重置为指向 Java 8,但 [that] 的副作用是所有其他 Java 应用程序都将在 Java 8 上运行。
只有当你做错了!
创建一个包含此内容的文件(例如mycordova.sh),使其可执行并将其放在您的 shell 的命令搜索路径中。
#!/bin/sh
export JAVA_HOME=/path/to/java8/home
cordova "$@"
运行该命令使用 Java 8 运行 cordova, 不会干扰其他应用程序。
更新 - 如果建议的解决方法是使用alternatives 进行更改,这意味着cordova 启动器/脚本没有使用JAVA_HOME 来查找java 命令。你也可以处理。有几种可能:
如果cordova 是包装脚本,则复制并编辑它以使用您要使用的java 命令(等)的版本。
/usr/bin/java
更新 2 - mycordova.sh 的最终脚本是:
#!/bin/sh
export JAVA_HOME=/path/to/java8/home
export PATH=/path/to/java8/bin/:$PATH
cordova "$@"
【讨论】:
sudo update-alternatives --config javac 或在我的情况下是 sudo archlinux-java set java-8-openjdk。考虑到这一点,这个解决方案输出这个:$ mycordova.sh run androidANDROID_HOME=/home/myhome/devel/Android/SdkJAVA_HOME=/usr/lib/jvm/java-8-openjdkError: Requirements check failed for JDK 1.8 or greater