Eclipse / Maven错误:“在此环境中没有提供编译器”

我是Java企业开发领域的相对新手。 我的组织的Java大师是无限期的家庭假,我已经被分配了维护他开发的一些Java应用程序的任务。 在他离开之前,他在我的电脑上安装了Eclipse [Kepler SR1]和Maven,似乎工作正常。

现在我准备部署我的第一个修改,需要运行一个Maven install ,但我有麻烦得到它的工作 – 我得到我的控制台上的以下输出:

[错误]未能执行目标org.apache.maven.plugins:maven-compiler-plugin:3.1:编译(默认编译)项目mrpapp:编译失败
[错误]在这个环境中没有提供编译器。 也许你正在使用JRE而不是JDK?

但我肯定是在运行JDK而不是JRE。 我仔细检查了我的$JAVA_HOMEC:\Program Files (x86)\Java\jdk1.7.0_60 ),它的bin目录有一个javac.exe

我附上我的pom.xml文件的副本供您审查。 我确信那里面有东西是导致这个问题的原因,但是我不确定它会是什么。 我正在使用Windows 7 64位笔记本电脑,如果您需要任何进一步的平台/环境信息我也可以提供。

任何帮助将不胜感激。

转到窗口→首选项→Java→已安装的JRE。

看看是否有指向你的JDKpath的条目,如果没有条目,点击编辑button,并把你configuration你的JAVA_HOME环境的path。

进入窗口>首选项> Java>已安装的JRE>并检查已安装的JRE。 你应该有一个JDK入口。

https://cduu.wordpress.com/2013/03/08/maven-eclipse-compiler-error-no-compiler-is-provided-in-this-environment/

我尝试了所有的东西; 那个为我工作的人是:

  1. 右键单击Eclipse项目导航到属性。
  2. 点击Java Build Path并转到Libraries选项卡
  3. 检查在那里添加了哪个版本的Java; 是JRE还是JDK?
  4. 如果您正在使用Maven项目并想构build解决scheme
  5. selectJRE添加他们,然后单击删除
  6. 单击添加外部类文件夹,并通过从词干中select来添加JDK安装。
  7. 单击应用并确定
  8. 重新启动Eclipse
  9. build立成功。

Screen_shot 将“tools.jar”添加到已安装的JRE。

  1. Eclipse的>窗口 – >首选项。
  2. select已安装的JRE – >编辑
  3. 添加外部jar子
  4. 从java / JDKx.x / lib文件夹中selecttools.jar。
  5. 点击完成

当在Eclipse中安装JDK 8和JRE 8时,在新安装的Eclipse Neon(用于JEE开发者)安装时,在Eclipse中执行Maven构build时,我遇到了同样的错误。

我已经试过将tools.jar指定为外部库,并且在eclipse中将jdk设置为-vm。 这些事情都没有奏效。

如上所述selectJDK作为默认的执行环境,

  1. Eclipse-> window-> preference-> java->已安装的JREs->执行环境。
  2. selectJavaSE-1.8
  3. 在“兼容的JRE”中检查JDK1.8。

第3步中兼容的JRE列表框上方的文本显示“可以通过检查来指定默认的JRE”

注意:我也有maven编译器插件在pom中明确列出1.8

  <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> 

请检查您的pom.xml元素中是否包含以下条目,特别是jdk.version,因为切换到已安装的jre没有解决类似的错误。

 <properties> <jdk.version>1.7</jdk.version> <spring.version>4.1.1.RELEASE</spring.version> <jstl.version>1.2</jstl.version> <junit.version>4.11</junit.version> </properties> 

如果有人在Ubuntu中运行Eclipse,并有这个问题,我已经通过以下步骤find了答案:

  1. Eclipse的>窗口 – >首选项。
  2. select已安装的JRE – >添加
  3. selectstandardVM。
  4. JRE home:按[Directory ..]button。
  5. select你的java(我的问题是我的eclipse是用java8运行的,我的虚拟机用java7),在我的情况下,java8安装在usr / local / jvm / java-8-oracle。
  6. 按完成。
  7. 然后按安装的JRES箭头,以便您可以看到其他选项。
  8. 转到执行环境。
  9. select左边和右边的JavaSE-1.6(兼容的JRE),你必须select刚安装的Java(在我的例子中是java-8-oracle)。 您必须使用JavaSE1.8来执行此步骤。
  10. 单击确定并重新启动Eclipse。

我在使用Jdk1.8_92时也遇到类似的错误。 对我来说,我发现我的jdk文件夹中缺lesstools.jar。 由于我在控制台中运行,我不能尝试其他人build议的eclipse的选项。

我安装了jdk-8u92-windows-x64。 在我尝试了所有选项后,我发现jdk1.8.0_92 / lib文件夹中缺lesstools.jar。 我从我的旧版本的java复制tools.jar。 然后它能够​​编译。

安装的JRE在我的情况下,我通过删除重复的名称来解决问题,我只保留一个名字:jdk.1.8.0_101

是得到同样的问题,指出在eclipse中的Java文件夹到bin文件夹:>首选项> Java>已安装的JRE>删除任何现有的JRE,并指向您的Java bin文件夹(主要是在C:\ Program Files \ Java \ jdk1.8 .x_xx)。

然后运行maven安装它应该工作。

在pom.xml中添加这个configuration

 <project ...> ... <build> ... <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <source>1.7</source> <target>1.7</target> <fork>true</fork> <executable>C:\Program Files\Java\jdk1.7.0_79\bin\javac</executable> </configuration> </plugin> </plugins> </build> ... </project> 

在我的情况下,我创build了一个运行configuration,每当我尝试运行它,错误将被显示。 在某些网站上search后,我编辑了运行configuration并在JRE选项卡下select了运行时JRE作为“工作区默认JRE”(我已经configuration为指向我的本地Java JDK安装(例如C:\ Program Files(x86) \的Java \ jdk1.8.0_51)。 这解决了我的问题。 也许它可以帮助那里的人。

  1. 从系统中卸载较旧的Java(JDK / JRE)(保留一个(最新的)java版本),还要删除环境variables中的任何旧的java jre / jdk条目PATH / CLASSPATH
  2. Eclipse-> Window-> Preferences-> Installed JREs->从最新的安装中添加/编辑JDK
  3. Eclipse-> Window-> Preferences-> Installed JREs-> Execution Environment->在左边select所需的java版本并点击右边的checkbox
  4. 如果你正在使用maven,请在pom.xml中包含下面的标签(根据需要更新版本)在plugins标签内。

     <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> 
  5. 右键单击eclipse项目Maven – > Update Project

对我来说(在Windows 10上),当我运行mvn install时,在Windows命令提示符下出现错误“此环境中没有提供编译器”。 解决方法是将JAVA_HOME环境variables指向我的jdk(C:\ Program Files \ Java \ jdk1.8.0_101); 以前它指向了jre。

为了让Eclipse使用新的jdk,我在eclipse发行版中编辑了eclipse.ini ,并将-vm的行改为C:\Program Files\Java\jdk1.8.0_101\bin

在Eclipse-> Window-> Preferences-> Installed JRE中检查pom.xml中的java版本和jre版本。 在我的情况下,pom.xml有不同的版本(它使用1.7时,它有1.8而日食)。 修复了在pom.xml 1.7版本的工作。

如果你在命令窗口的eclipse之外工作
确保你有正确的JAVA_HOME,并且通过在命令窗口中input以下命令,该目录包含编译器:

 dir %JAVA_HOME%\bin\javac.* 

1.转到Windows – >首选项 – > Java – >已安装的JRE – >执行环境

2.select您正在使用的“执行环境”框中的Java版本。 因此,在“兼容的JRE”框中,您可以看到“ jre1.8.0_102 [完美匹配] ”(如果您的Java版本是1.8)。 然后尝试使用maven构build。

Maven需要JDK来编译。 在Eclipse中,您需要将JRE更改/replace为您的JAVA_HOME指向的JDKpath。 导航到“窗口”>“首选项”>“Java”>“已安装的JRE”。

确保你的pom.xml中的maven-compiler-plugin在你的JAVA_HOME中有java版本的源和目标

http://learn-automation.com/maven-no-compiler-is-provided-in-this-environment-selenium/

要检查你的Maven使用的是什么,打开一个命令行并input:

 mvn –version 

validationJAVA_HOME是指JDK主目录而不是JRE

在Windows上:

进入系统属性 – >高级系统设置 – >高级 – >环境variables,并在系统variables部分selectJAVA_HOMEvariables,然后单击编辑使用以下variables名称填写表单:JAVA_HOMEvariables值:

在Unix上:

 export JAVA_HOME=<ABSOLUTE_PATH_TO_JDK> 

看到这个链接