无法 运行 "javac -version" 确保您安装了 JDK 版本 8

Failed to run "javac -version" make sure that you have a JDK version 8 installed

我是 ionic 的新手,我已经尝试了互联网上有关此问题的所有可用方法,但我还没有找到任何 suitable/matching 解决方案。

我的问题详情:

我正在使用 ionic 5,当我在 运行 ionic cordova run android 时,过了一会儿我遇到了以下错误:

Failed to run "javac -version", make sure that you have a JDK version 8 installed.
You can get it from the following location:
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

Your JAVA_HOME is invalid: /usr/lib/jvm/java-8-openjdk-amd64
[ERROR] An error occurred while running subprocess cordova.
    
    cordova build android --device exited with exit code 1.
    
    Re-running this command with the --verbose flag may provide more information.

我已经在我的电脑上安装了 java、cordova 和 android studio(ubuntu 16.04) 下面是一些细节:

命令:java -version

结果:

openjdk version "1.8.0_252"
OpenJDK Runtime Environment (build 1.8.0_252-8u252-b09-1~16.04-b09)
OpenJDK 64-Bit Server VM (build 25.252-b09, mixed mode)

命令:javac -version 结果:

The program 'javac' can be found in the following packages:
 * default-jdk
 * ecj
 * gcj-5-jdk
 * openjdk-8-jdk-headless
 * gcj-4.8-jdk
 * gcj-4.9-jdk
 * openjdk-9-jdk-headless
Try: sudo apt install <selected package>

apt-install default-jdk,这基本上就是最后一条消息告诉您要做的事情,应该可以解决问题。

Debian/Ubuntu 对 JRE 和 JDK 有不同的包。您只安装了 JRE。

我意识到这并不仅限于通过安装 Java 开发工具包来消除错误。由于这是一个 Ionic 项目,如果您不专门安装 Open JDK 8 并正确设置您的环境变量,您将面临其他问题——Cordova 目前仅支持 Open JDK8,并与较新的版本可能会生成警告消息:

Requirements check failed for JDK 8 ('1.8.*')! Detected version: 11.0.9

所以在处理了这个错误和所有后续错误之后,我想我应该详细说明完全适合我的解决方案:

首先,安装默认Java 运行时间环境(JRE)

sudo apt update
sudo apt install default-jre

其次,安装Java开发工具包(JDK)版本8

sudo apt-get update
sudo apt-get install openjdk-8-jdk

为了验证两者都已安装,运行 java -version 用于 JRE,javac -version 用于 JDK

第三,设置JAVA_HOME环境变量。您必须确定 Java 的安装位置才能执行此操作。可以通过运行ning:

来判断
sudo update-alternatives --config java

您的安装路径很可能是 /usr/lib/jvm/java-8-openjdk-amd64/bin/java。复制 /bin/java 部分之前的路径,并将其粘贴到 /etc/environment 文件末尾,将其添加到环境变量中。

sudo nano /etc/environment

文件结尾应如下所示:

JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64"

保存文件,关闭编辑器并通过 运行ning

应用更改
source /etc/environment

你可以确定这是运行ning

设置的
echo $JAVA_HOME

最后,这似乎只发生在我身上,我必须重新启动我的机器以确保更改得到全局应用

致谢:Digital Ocean