Maven:警告无法使用环境中的“javac”自动检测“javac”路径

问题描述 投票:0回答:13

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

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

我该如何解决这个问题?

maven-2 maven-3 javac
13个回答
25
投票

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

要修复该警告,请安装 JDK(Java 开发 套件)并将环境变量

JAVA_HOME
设置为新安装的 Java 版本。

如果需要,您可以将其放入文件中

.mavenrc
;那么只有 Maven 会使用这个版本的 Java。


8
投票

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


7
投票

我的一个朋友在 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

仅此而已。

我希望这有帮助


1
投票

尝试在我的电脑-->环境变量中设置

JAVA_HOME


1
投票

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


1
投票

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


1
投票

如果您正在使用

IntelliJ
:
检查
Preferences | Build, Execution, Deployment | Build Tools | Maven | Runner -> JRE

另请检查
File | Project Structure

大多数时候你会发现错误的java版本。


1
投票

对于发现接受的答案不适用的人:检查您的

maven-compiler-plugin
是否将
fork
中的
true
选项设置为
pom.xml
,如下所示:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.8.1</version>
    <configuration>
        <fork>true</fork>
    </configuration>
</plugin>

这似乎是 IntelliJ 中的一个 bug,截至 2022 年 10 月 21 日尚未修复。


0
投票

Right click on project -> Properties -> Java Compiler
然后
uncheck
使用执行环境的合规性...然后在编译器合规性级别

中选择编译器

0
投票

在 Mac 上:

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

0
投票

在 Mac 上删除 intelliJ 中的 .idea 文件夹对我有用


0
投票

我正在使用 IntelliJ 2022.3.2,并且必须从 JAVA_HOME 路径中删除“in”部分来修复“问题”。


0
投票

分析:

<plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <executable>/usr/local/pje/jdk-11.0.10+9/bin/javac</executable>
            </configuration>
        </plugin>
© www.soinside.com 2019 - 2024. All rights reserved.