【问题标题】:I can't change Cordova JAVA_HOME value我无法更改 Cordova JAVA_HOME 值
【发布时间】:2018-09-27 23:26:56
【问题描述】:

我最近将我的 java 版本升级到了 9。但是现在当我尝试为 Android 构建时,我得到了

JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-9.0.4.jdk/Contents/Home
(node:87041) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): CordovaError: Requirements check failed for JDK 1.8 or greater

所以我重新安装了 jdk 1.8 并进入 .bash_profile 并将 JAVA_HOME 更改为

/Library/Java/JavaVirtualMachines/jdk1.8.0_171.jdk/Contents/Home

使用时返回的是什么

>> source .bash_profile
>> echo $JAVA_HOME

但是 Cordova 仍然给出上述错误。我错过了什么吗?

编辑:/usr/libexec/java_home -V 的输出是

Matching Java Virtual Machines (3):
9.0.4, x86_64:  "Java SE 9.0.4" /Library/Java/JavaVirtualMachines/jdk-9.0.4.jdk/Contents/Home
1.8.0_171, x86_64:  "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_171.jdk/Contents/Home
1.8.0_144, x86_64:  "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home

【问题讨论】:

    标签: java android macos cordova ionic2


    【解决方案1】:

    您的$PATH 中可能缺少 JDK。更新您的 PATH 以反映 jdk 的位置(通常对于 9.0.4 应该是):

    export JAVA_HOME=$(/usr/libexec/java_home -v 9.0.4) # substitute version here
    export PATH=$JAVA_HOME/bin:$PATH
    

    如果JAVA_HOME 的导出不起作用,您可以使用您拥有的那个,因为它看起来正确:

    export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-9.0.4.jdk/Contents/Home
    export PATH=$JAVA_HOME/bin:$PATH
    

    将其添加到您的~/.bash_profile,您应该会恢复营业。

    【讨论】:

    • 感谢您的帮助!所以我将前两行添加到我的 .bash_profile 中,版本为 1.8.0。然后我能够回显 JAVA_HOME 并获得了 jdk1.8.0 的正确路径。但是,当我运行 cordova build android 时,它仍然说我的 JAVA_HOME 是 jdk-9.0.4,说明“检查 JDK 1.8 或更高版本失败”
    • 嗯,这很有趣,所以JAVA_HOME 报告了1.8.0,cordova 报告了9.0.4。看起来几乎就像它被缓存或从其他地方提取信息一样。尝试重新启动cordova,也不要忘记先获取.bash_profile
    • 这也可能是出于某种原因,Cordova 只寻找 /Library/Java/JavaVirtualMachines/jdk-9.0.4.jdk 而没有 /Contents/Home — 如果仍然无法正常工作,您可以尝试一下。
    • 我在我的项目文件夹中运行了 source .bash_profile,现在它说“无法从 '9.0.4' 确定 java 版本。(我发现这意味着我需要升级我的 gradle)所以这是一个不同的输出,但显然仍然有错误的 JAVA_HOME 值(因为我想要 1.8.0)
    • 是的,我会推荐。除此之外,文档或多或少地提到了您已经完成的工作:cordova.apache.org/docs/en/7.x/guide/platforms/android/…。因此,如果 1.8.0 不起作用,您应该报告有关无效 jdk 的错误。也许也可以尝试卸载 9.0.4。
    猜你喜欢
    • 2017-04-11
    • 2022-06-14
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 2015-10-18
    • 1970-01-01
    相关资源
    最近更新 更多