【问题标题】:Maven: WARNING Unable to autodetect 'javac' path, using 'javac' from the environmentMaven:警告无法使用环境中的“javac”自动检测“javac”路径
【发布时间】:2013-11-20 14:36:00
【问题描述】:

运行 Maven 时,我得到以下输出:

[WARNING] Unable to autodetect 'javac' path, using 'javac' from the environment.

我该如何解决这个问题?

【问题讨论】:

    标签: maven-2 maven-3 javac


    【解决方案1】:

    当使用 JRE(Java 运行时环境)运行 Maven 时,您将看到此错误消息,该 JRE 是 Java 的精简版本,只能 执行 Java 代码但不能 编译源代码。

    要修复警告,请安装 JDK(Java 开发 Kit)并将环境变量 JAVA_HOME 设置为新安装的 Java 版本。

    如果需要,您可以将其放入文件.mavenrc;那么只有 Maven 会使用这个版本的 Java。

    【讨论】:

    • 如果 IntelliJ 发生这种情况怎么办?
    • @MiguelMunoz 在 Maven 运行器的配置中,有一个选项可以选择要使用的 JRE。确保它指向一个 SDK。在此处查看“JRE”字段:jetbrains.com/help/idea/…
    • @AaronDigulla 谢谢你,我在环境变量框中输入了: JAVA_HOME=/usr/lib/jvm/jdk-14.0.1 并且效果很好
    • 为什么会出现这个警告?我已经设置了 JDK,但没有费心配置 JAVA_HOME,因为我想使用操作系统提供的工具在 Java 版本之间快速切换,例如archlinux-java。对我来说一切都很好,除了 Maven 警告。
    • @mikhailian:在大多数情况下,这意味着正在使用 Java 的“随机”版本(即路径上的任何内容)。这会导致许多人在没有意识到这一点的情况下进行不可重复的构建。也不总是可以提供干净的路径或将 Java 放在路径上。 JAVA_HOME 将始终有效并解决所有这些问题。
    【解决方案2】:

    如果您从 Eclipse 运行 Maven(例如,运行方式:Maven 安装),请确保您的环境配置了正确的 JRE(您需要 JDK,而不是 JRE)。转到窗口 -> 首选项 -> Java -> 已安装的 JRE。如果有 JDK,请选择 JDK,如果没有,请添加 JDK。

    【讨论】:

      【解决方案3】:

      我的一个朋友在 Ubuntu 18.04 中构建 Java 项目时遇到了这个问题。

      当他运行命令时:

      maven clean build
      

      他收到警告:

      [WARNING] Unable to autodetect 'javac' path, using 'javac' from the environment
      

      然后得到这个错误:

      [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.5.1:compile (default-compile) on project geostore-model: Compilation failure -> [Help 1]
      

      解决方法如下

      问题是他的机器上没有安装javac(Java 编程语言编译器)。为了确认,我们运行了命令:

      javac --version
      

      我们没有得到版本输出

      所以我们使用以下命令安装了 Java 开发工具包,其中包含 javac 及其所有依赖项:

      sudo apt install default-jdk
      

      之后我们运行命令javac --version 并得到输出:

      javac 11.0.9.1
      

      就是这样。

      我希望这会有所帮助

      【讨论】:

        【解决方案4】:

        尝试在MyComputer中设置JAVA_HOME-->环境变量

        【讨论】:

          【解决方案5】:

          Right click on project -> Properties -> Java Compiler then uncheck Use compliance from execution environment... 然后在Compiler Compliance level中选择一个编译器

          【讨论】:

            【解决方案6】:

            sudo yum install java-sdk Centos 使用 -devel 后缀找到正确的 SDK

            【讨论】:

              【解决方案7】:

              sudo yum install java-1.8.0-openjdk-devel 适用于 Java 版本 8 sudo yum install java-11-openjdk-devel 用于 java 版本 11

              【讨论】:

                【解决方案8】:

                在 Mac 上:

                java_version=1.8
                #version=1.8.0_91
                export JAVA_HOME=$(/usr/libexec/java_home -v $java_version) 
                

                【讨论】:

                  猜你喜欢
                  • 2015-05-21
                  • 1970-01-01
                  • 2018-08-26
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2017-10-12
                  • 2010-11-05
                  相关资源
                  最近更新 更多