我正在通过命令提示符运行我的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,我要求命令提示符。
答案 0 :(得分: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
答案 1 :(得分:0)
您应该将Java添加到您的环境变量中。尝试点击Windows,搜索环境变量,然后再次单击按钮
环境变量......
然后更改或创建名为JAVA_HOME的变量,指向您的Java安装,如您所述:C:\ programfi \ Java \ jdk1.8.0_73
确保MAVEN_HOME也是正确的。
然后单击“确定”,关闭打开的命令提示符并打开一个新提示符。 尝试执行mvn -v并检查它是否是您指定的Java版本。如果是,它可能适用于CLI,而不仅仅是Eclipse。
值得一提的是,Eclipse并不总是从您的系统指向相同的JDK和Maven。您应该确保命令行界面和Eclipse使用相同的工具。
答案 2 :(得分:0)
尝试setting up your JAVA_HOME
environment variable指向您在问题中引用的JDK。 This是如何做到这一点的一个很好的答案。请注意,JAVA_HOME
环境变量本身不应包含\bin
目录。此外,要使javac
在命令行上正常运行,您需要根据this answer将JAVA_HOME\bin
添加到PATH
环境变量。