运行Maven时,我得到以下输出:
[WARNING] Unable to autodetect 'javac' path, using 'javac' from the environment.
我该如何解决这个问题?
当Maven使用JRE(Java运行时环境)运行时,您将看到此错误消息,JRE(Java运行时环境)是Java的精简版本,只能执行Java代码,但不能编译源代码。
要修复该警告,请安装 JDK(Java 开发工具包)并将环境变量JAVA_HOME
设置为新安装的 Java 版本。
如果你愿意,你可以把它放到.mavenrc
文件中;那么只有Maven会使用这个版本的Java。
如果您从 Eclipse 运行 Maven(例如 Run As : Maven Install),请确保您的环境配置了正确的 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
而且我们没有版本输出
因此,我们使用以下命令安装了包含javac
及其所有依赖项的 Java 开发工具包:
sudo apt install default-jdk
之后,我们运行命令javac --version
并得到输出:
javac 11.0.9.1
就这样。
我希望这有帮助
尝试在 MyComputer-->Environment 变量中设置JAVA_HOME
sudo yum install java-sdk
Centos 使用 -devel 后缀找到正确的 SDK
Java 版本 8 的sudo yum install java-1.8.0-openjdk-devel
Java 版本 11 的sudo yum install java-11-openjdk-devel
如果您使用的是IntelliJ
:
检查Preferences | Build, Execution, Deployment | Build Tools | Maven | Runner -> JRE
.
另请检查File | Project Structure
.
大多数时候你会发现一个错误的Java版本。
对于没有发现接受答案适用的人:检查您的maven-compiler-plugin
是否将fork
选项设置为 true
in 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 中的一个错误,截至 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路径中删除"\bin"部分来解决"问题"。
分析:
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<executable>/usr/local/pje/jdk-11.0.10+9/bin/javac</executable>
</configuration>
</plugin>