我无法更改 Cordova JAVA_HOME 值

Posted

技术标签:

【中文标题】我无法更改 Cordova JAVA_HOME 值【英文标题】:I can't change Cordova JAVA_HOME value 【发布时间】: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

【问题讨论】:

【参考方案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。

以上是关于我无法更改 Cordova JAVA_HOME 值的主要内容,如果未能解决你的问题,请参考以下文章

更改权限后无法在 Cordova iOS 上使用 Facebook SDK 登录

JAVA_HOME设置为无效目录:

JAVA_HOME 设置为无效目录:

如何更改 Cordova 相机插件选项

Cordova 入门

无法启动Hadoop datanode。返回值:1