【问题标题】:Failed to run "javac -version" make sure that you have a JDK version 8 installed无法运行“javac -version”确保您安装了 JDK 版本 8
【发布时间】:2020-11-02 14:06:40
【问题描述】:

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

我的问题的详细信息:

我正在使用 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.

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

命令: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>

【问题讨论】:

    标签: java ionic-framework javac


    【解决方案1】:

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

    Debian/Ubuntu 为 JRE 和 JDK 提供不同的软件包。您只安装了 JRE。

    【讨论】:

    • 它没有用,运行命令后我得到以下消息:读取包列表...完成构建依赖关系树读取状态信息...完成 E:无法找到包默认值- openjdk 然后我搜索了消息的最后一行并尝试了它,它也没有工作。 stackoverflow.com/questions/32942023/…
    • 请改用default-jdk
    • 非常感谢它成功了,但是在解决了这个问题之后,又出现了另一个问题。我也尝试将 java sdk 路径添加到 .bashrc 和 .bash_profile 但没有任何效果
    • 检查 Java JDK 和 Android SDK 版本 ANDROID_SDK_ROOT=/home/ge/Android/Sdk(推荐设置) ANDROID_HOME=/home/ge/Android/Sdk(已弃用)找不到已安装的 Gradle 版本在 Android Studio 中或在您的系统上安装 gradle 包装器。请在您的路径中包含 gradle,或安装 Android Studio [错误] 运行子进程 cordova 时发生错误。 cordova build android --device exited with exit code 1. 使用 --verbose 标志重新运行此命令可能会提供更多信息。
    • 我会说你需要安装 gradle,但这完全是另一个问题。您应该对该错误进行一些研究,以防万一,提出不同的问题。
    【解决方案2】:

    我意识到这并不仅仅只是通过安装 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
    

    要验证两者都已安装,请为 JRE 运行 java -version,为 JDK 运行 javac -version

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

    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"
    

    保存文件,关闭编辑器并通过运行应用更改

    source /etc/environment
    

    你可以确定这是通过运行设置的

    echo $JAVA_HOME
    

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

    致谢:Digital Ocean

    【讨论】:

      猜你喜欢
      • 2018-04-12
      • 1970-01-01
      • 1970-01-01
      • 2021-12-18
      • 1970-01-01
      • 2017-01-09
      • 2023-04-02
      • 1970-01-01
      相关资源
      最近更新 更多