Maven CLI 无法识别 JAVA_HOME 是否已正确配置

Maven CLI 无法识别 JAVA_HOME 是否已正确配置

尽管它正确指向了 JDK,但输出结果仍然如此

C:\Users\{usr}>mvn -version
The JAVA_HOME environment variable is not defined correctly
This environment variable is needed to run this program
NB: JAVA_HOME should point to a JDK not a JRE

C:\Users\{usr}>echo %JAVA_HOME%
C:\Program Files\Java\jdk1.8.0_191

我尝试了相反的方法,即将 JAVA_HOME 指向 JRE,这种方法对我有用,尽管它说要将其路径设置为 JDK 而不是 JRE

Apache Maven 3.6.1 (d66c9c0b3152b2e69ee9bac180bb8fcc8e6af555; 2019-04-05T03:00:29+08:00)
Maven home: C:\Program Files\Maven\apache-maven-3.6.1\bin\..
Java version: 1.8.0_191, vendor: Oracle Corporation, runtime: C:\Program Files\Java\jre1.8.0_191
Default locale: en_PH, platform encoding: Cp1252
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"

细节

  • Apache-maven-3.6.1
  • jdk1.8.0_191
  • jre1.8.0_191
  • %JAVA_HOME% = C:\Program Files\Java\jdk1.8.0_191
  • %MAVEN_HOME% = C:\Program Files\Maven\apache-maven-3.6.1

我不太明白为什么它的行为是这样的,尽管它明确地说要使用 JDK 和不是JRE

答案1

尽管在 Windows 和 Linux 中的 Linux 子系统上都设置了 JAVA_HOME、MAVEN_HOME 和 JAVACMD 环境变量,但我还是遇到了同样的问题。我最终通过编辑 maven 目录的 conf 文件夹中的 settings.xml 文件使其正常工作。我添加了一个如下所示的配置文件:

<profile>
  <id>myprofile</id>

  <activation>
    <jdk>1.8</jdk>
  </activation>

  <properties>
    <java.home>/path/to/jdk</java.home>
  </properties>
</profile>

并将活动配置文件设置为该配置文件

 <activeProfiles>
   <activeProfile>myprofile</activeProfile>
 </activeProfiles>

由于某种原因,java.home maven 变量似乎与 JAVA_HOME 环境变量不同。

相关内容