为啥 cordova 选择了错误的 JDK 版本?

Posted

技术标签:

【中文标题】为啥 cordova 选择了错误的 JDK 版本?【英文标题】:Why is cordova picking up the wrong JDK version?为什么 cordova 选择了错误的 JDK 版本? 【发布时间】:2021-09-18 03:48:41 【问题描述】:

在 macOS 上,运行终端命令时

cordova build android

我收到一个错误:

Checking Java JDK and Android SDK versions
ANDROID_SDK_ROOT=/Users/arnas/Android/Sdk (recommended setting)
ANDROID_HOME=/Users/arnas/Android/Sdk (DEPRECATED)
Requirements check failed for JDK 1.8.x! Detected version: 15.0.2
Check your ANDROID_SDK_ROOT / JAVA_HOME / PATH environment variables.

虽然运行java -version 返回java version "1.8.0_291"

我的 bash_profile 设置是:

export JAVA_HOME=`/usr/libexec/java_home -v 1.8`

export ANDROID_HOME=$HOME/Android/Sdk
export ANDROID_SDK_ROOT=$HOME/Android/Sdk
export PATH=$PATH:$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/platform-tools

这里有什么问题?

【问题讨论】:

【参考方案1】:

使用 which java 命令来了解您的 java 版本 1.8 的路径,然后使用该路径设置 JAVA_HOME 删除 bin/java。 那就是:

which java    
/usr/bin/java1.8/bin/java

然后在你的 bash_profile 中替换你当前的“export JAVA_HOME...”

export JAVA_HOME=/usr/bin/java1.8

【讨论】:

对我来说,哪个 java 返回 "/usr/bin/java" 那么我应该把它作为 JAVA_HOME 吗?【参考方案2】:

对我有用的是,实际上是在 bash_profile 中手动设置 JAVA_HOME,方法是运行 nano ~/.bash_profile 并输入该行:

export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_291.jdk/Contents/Home"

我通过在JavaVirtualMachines目录下找到最新的JDK版本获得了文件路径。

【讨论】:

以上是关于为啥 cordova 选择了错误的 JDK 版本?的主要内容,如果未能解决你的问题,请参考以下文章

为啥在编写javaweb项目的时候,无缘无故会报错,切换jdk版本后会恢复正常?代码格式没有任何错误

为啥在使用 Cordova 构建 APK 时出现此错误?

Cordova android 运行/构建错误 - JDK 1.8 的要求检查失败

为啥在安装spring-tool-suite的时候,出现JDK版本不对的

Cordova 构建 android 失败!!! JDK 8('1.8.*')的要求检查失败!检测到的版本:9.0.1 在 Windows 10 中

ios为啥cordova命令安装出错