【问题标题】:Running maven through command prompt通过命令提示符运行 maven
【发布时间】:2017-04-27 18:34:43
【问题描述】:

我正在通过我的命令提示符运行我的 maven 构建,我在我的系统变量中设置了 M2_HOME 变量。但是,当我在命令提示符下运行 mvn compile 时,出现以下错误:

no compiler is provided in this environment. perhaps you are running on a jre rather than a jdk

但是当我在我的 Eclipse GUI 中运行目标 mvn compile 时,它工作正常。


当我将它添加到我的 pom.xml 时,它能够在我的命令提示符下编译,但我需要它来工作,而不必将它放在我的 pom 中。

<plugin>
     <artifactId>maven-compiler-plugin</artifactId>
     <version>3.1</version>
     <configuration>
        <source>1.8</source>
        <target>1.8</target>
        <executable>C:\programfi\Java\jdk1.8.0_73\bin\javac.exe</executable>
    </configuration>
</plugin>

这不是一个重复的问题,因为与此类似的其他问题是要求 Eclipse GUI,我要求的是命令提示符。

【问题讨论】:

  • 在命令提示符下键入命令javac 会得到什么?确保 JDK bin 目录在您的 PATH 中。
  • @Jesper 当我在命令提示符下运行 java -version 时,它会吐出版本,所以我假设它设置正确。
  • 但是javac(Java 编译器)而不是java呢?
  • 哦,当我使用 javac 时它会抱怨。 K 将尝试将其设置为我的路径变量,看看是否有效
  • 是的,尝试正确设置 JAVA_HOME 和 PATH 变量。请参阅此问题的第三个答案:*.com/questions/2619584/…

标签: java maven


【解决方案1】:

设置您的 jdk 路径,并将 maven 路径设置为主目录中的 .bash_aliases 文件(隐藏文件):-

export JAVA_HOME=/home/hadoop/install/jdk1.8.0_92
export PATH=$JAVA_HOME/bin:$PATH


export MAVEN_HOME=/home/hadoop/install/apache-maven-3.3.9
export M2_HOME=/home/hadoop/install/apache-maven-3.3.9

*nix 系统和 Windows 系统has been published by Oracle的其他详细信息

【讨论】:

  • 这很可能没有帮助,因为 robben 似乎使用的是 Windows,这些说明适用于 Linux。
【解决方案2】:

您应该将 Java 添加到您的环境变量中。尝试点击 Windows,搜索环境变量并再次单击按钮

环境变量...

然后更改或创建名为:JAVA_HOME 的变量,指向您的 Java 安装,如您所述:C:\programfi\Java\jdk1.8.0_73

确保你的 MAVEN_HOME 也是正确的。

然后单击确定,关闭打开的命令提示符并打开一个新的。 尝试执行 mvn -v 并检查 Java 版本是否是您指定的版本。如果是,它可能会在 CLI 上运行,而不仅仅是在 Eclipse 上运行。

还值得一提的是,Eclipse 并不总是从您的系统指向同一个 JDK 和 Maven。您应该确保您的命令行界面和您的 Eclipse 使用相同的工具。

【讨论】:

    【解决方案3】:

    尝试setting up your JAVA_HOME environment variable 指向您在问题中引用的 JDK。 This 是关于如何做到这一点的一个很好的答案。请注意,JAVA_HOME 环境变量本身不应包含\bin 目录。此外,要让javac 在命令行上正确运行,您需要按照this answerJAVA_HOME\bin 添加到您的PATH 环境变量中。

    【讨论】: