运行 Maven 时,我得到以下输出:
[WARNING] Unable to autodetect 'javac' path, using 'javac' from the environment.
我该如何解决这个问题?
当使用 JRE(Java 运行时环境)运行 Maven 时,您将看到此错误消息,JRE 是 Java 的精简版本,只能执行Java 代码,但不能编译源。
要修复该警告,请安装 JDK(Java 开发 套件)并将环境变量
JAVA_HOME
设置为新安装的 Java 版本。
如果需要,您可以将其放入文件中
.mavenrc
;那么只有 Maven 会使用这个版本的 Java。
如果您从 Eclipse 运行 Maven(例如运行方式:Maven 安装),请确保您的环境配置了正确的 JRE(您需要 JDK,而不是 JRE)。转至窗口 -> 首选项 -> Java -> 安装的 JRE。如果有 JDK,则选择它;如果没有,则添加 JDK。
我的一个朋友在 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
仅此而已。
我希望这有帮助
尝试在我的电脑-->环境变量中设置
JAVA_HOME
sudo yum install java-sdk
Centos 找到带有 -devel 后缀的正确 SDK
sudo yum install java-1.8.0-openjdk-devel
适用于 Java 版本 8
sudo yum install java-11-openjdk-devel
适用于 Java 版本 11
如果您正在使用
IntelliJ
:Preferences | Build, Execution, Deployment | Build Tools | Maven | Runner -> JRE
。File | Project Structure
。对于发现接受的答案不适用的人:检查您的
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 日尚未修复。
Right click on project -> Properties -> Java Compiler
然后uncheck
使用执行环境的合规性...然后在编译器合规性级别中选择编译器
在 Mac 上:
java_version=1.8
#version=1.8.0_91
export JAVA_HOME=$(/usr/libexec/java_home -v $java_version)
在 Mac 上删除 intelliJ 中的 .idea 文件夹对我有用
我正在使用 IntelliJ 2022.3.2,并且必须从 JAVA_HOME 路径中删除“in”部分来修复“问题”。
分析:
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<executable>/usr/local/pje/jdk-11.0.10+9/bin/javac</executable>
</configuration>
</plugin>