Maven:警告,无法自动检测'javac'路径,使用环境中的'javac'。

23

运行Maven时,我得到了这个输出:

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

我该如何修复这个问题?

14个回答

25
当使用JRE(Java运行环境)运行Maven时,您将看到此错误消息。JRE是Java的简化版本,只能执行Java代码,而无法编译源代码。
为了解决此警告,请安装JDK(Java开发工具包)并设置环境变量JAVA_HOME为新安装的Java版本。您可以将此内容放入文件.mavenrc中,这样只有Maven会使用这个Java版本。

4
如果在IntelliJ中发生了这种情况怎么办? - MiguelMunoz
4
在 Maven 运行器的配置中,有一个选项可以选择要使用的 JRE。确保它指向一个 SDK。请参见此处的“JRE”字段:https://www.jetbrains.com/help/idea/delegate-build-and-run-actions-to-maven.html#build_through_maven - Aaron Digulla
@AaronDigulla 谢谢你的帮助,我在环境变量框中输入了:JAVA_HOME=/usr/lib/jvm/jdk-14.0.1,然后它就可以正常运行了。 - Simon B
1
如果您使用的是IntelliJ,请检查“首选项|构建、执行、部署|构建工具|Maven|运行器->JRE”。如果不是,请检查项目结构。 - Chris Wu
1
@ChrisWu 这应该是一个答案;没有人会找到这个评论 :-) - Aaron Digulla
显示剩余3条评论

8

如果您正在从Eclipse运行Maven(例如,Run As:Maven Install),请确保您的环境配置了正确的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]

以下是解决方法:

问题在于他的电脑上没有安装Java编译器javac。为了确认,我们运行了以下命令:

javac --version

我们没有得到任何版本输出。

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

sudo apt install default-jdk

接着我们运行了命令 javac --version,并得到以下输出:

javac 11.0.9.1

我希望你能够受益,以下是内容:

希望这有所帮助。


1

如果您正在使用 IntelliJ
请检查 Preferences | Build, Execution, Deployment | Build Tools | Maven | Runner -> JRE
还要检查 File | Project Structure
大多数情况下,您会发现错误的Java版本。


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版本


注意:这只会安装Java。当你安装了8和11两个版本时,你可能仍需要使用其他答案之一来指定Maven使用正确的版本。 - Aaron Digulla

1
对于那些认为已接受的答案不适用的人:请检查您的maven-compiler-plugin是否在pom.xml中将fork选项设置为true,如下所示:
<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日之前修复的bug

0
在Mac电脑上:
java_version=1.8
#version=1.8.0_91
export JAVA_HOME=$(/usr/libexec/java_home -v $java_version) 

0
我尽管已经更新了路径等等,而且javac -version也显示了正确的Java版本,但仍然遇到了这个错误。
我通过重新启动电脑解决了这个问题:),所以如果问题仍然存在,这也是值得尝试的方法。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接