【问题标题】:Cordova isn't working with Java 9. How to set a specific jdk ONLY for Cordova?Cordova 不适用于 Java 9。如何仅为 Cordova 设置特定的 jdk?
【发布时间】: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 上?

【问题讨论】:

    标签: java cordova


    【解决方案1】:

    ... 将 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 命令(等)的版本。

    • 1234563 @管理。这将起作用......只要标准的科尔多瓦发射器没有硬连线/usr/bin/java

    更新 2 - mycordova.sh 的最终脚本是:

    #!/bin/sh
    export JAVA_HOME=/path/to/java8/home
    export PATH=/path/to/java8/bin/:$PATH
    cordova "$@"
    

    【讨论】:

    • 我的错,正如链接问题中所讨论的那样,仅重置 JAVA_HOME 是不够的,它需要 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
    猜你喜欢
    • 1970-01-01
    • 2020-11-09
    • 2017-07-16
    • 2018-08-11
    • 2023-03-22
    • 2018-06-19
    • 1970-01-01
    • 1970-01-01
    • 2022-01-04
    相关资源
    最近更新 更多