我是Java企业开发世界的新手。我的组织的Java专家已无限期休假,我被分配了维护他开发的一些Java应用程序的任务。在他离开之前,他在我的计算机上用Maven设置了Eclipse [Kepler SR1],它似乎工作正常。
现在我已经准备好部署我的第一个修改并且需要运行Maven install
,但我无法让它工作 - 我在我的控制台上得到以下输出:
[错误]无法执行目标org.apache.maven.plugins:maven-compiler-plugin:3.1:在项目mrpapp上编译(default-compile):编译失败
[错误]此环境中未提供编译器。也许你是在运行JRE而不是JDK?
但我肯定我运行JDK而不是JRE。我仔细检查了我的$JAVA_HOME
(C:\Program Files (x86)\Java\jdk1.7.0_60
), 在javac.exe
目录中有bin
。
我附上了pom.xml
文件的副本供您审核。我确定那里有一些导致问题的东西,但我不确定它可能是什么。我正在使用Windows 7 64bit笔记本电脑,如果您需要任何其他平台/环境信息我也可以提供。
非常感谢任何帮助。
答案 0 :(得分:145)
转到窗口→首选项→Java→已安装的JRE。
查看是否有指向JDK路径的条目,如果没有,请单击编辑按钮并将您配置的路径放在JAVA_HOME
环境中。
答案 1 :(得分:19)
Screen_shot 添加' tools.jar'安装JRE。
<p>
- &gt; Eclipse
- &gt; window
。preference
- &gt; installed JREs
Edit
文件夹中选择tools.jar
。答案 2 :(得分:15)
进入Window&gt;偏好&gt; Java&gt;已安装的JRE&gt;并检查已安装的JRE。你应该在那里有一个带JDK的条目。
答案 3 :(得分:10)
我尝试了所有的事情;对我有用的是:
答案 4 :(得分:4)
在pom.xml中添加此配置
<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>
答案 5 :(得分:3)
当我使用Jdk1.8_92时,我也遇到了类似的错误。 对我来说,我发现我的jdk文件夹中缺少tools.jar。 由于我在控制台中运行,我无法尝试其他人建议的eclipse选项。
我安装了jdk-8u92-windows-x64。 在我尝试了所有选项后,我发现jdk1.8.0_92 / lib文件夹中缺少tools.jar。 我从旧版本的java中复制了tools.jar。 然后就可以编译了。
答案 6 :(得分:2)
如果某人在Ubuntu中运行Eclipse并遇到此问题,我已按照以下步骤找到答案:
答案 7 :(得分:2)
请检查你的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>
答案 8 :(得分:2)
在安装了JDK 8和JRE 8的Windows 10上,在新安装的Eclipse Neon(用于JEE开发)安装中尝试在Eclipse中执行maven构建时,我遇到了同样的错误。
我曾尝试将tools.jar指定为外部lib,并在eclipse中将jdk设置为-vm。这些都没有奏效。
如上所述选择JDK作为默认执行环境就可以了。
步骤3中兼容的JRE列表框上方的文字说“可以通过检查来指定默认的JRE”
注意:我还在maom编译器插件中明确列出了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>
答案 9 :(得分:2)
关注: Windows - &gt; 偏好设置 - &gt; Java ---&gt; 已安装 JRE
点击“搜索 ..”
导航到C盘---&gt;程序文件
Eclipse将找到所有jre和jdk的 - &gt;选择 jdk 之一,然后选择应用
答案 10 :(得分:1)
在我的情况下,我创建了一个运行配置,每当我尝试运行它时,都会显示错误。在一些网站上搜索之后,我编辑了运行配置并在JRE选项卡下,将运行时JRE选为“工作空间默认JRE”,我已将其配置为指向本地Java JDK安装(例如C:\ Program Files(x86)) \的Java \ jdk1.8.0_51)。这解决了我的问题。也许它可以帮助那些人。
答案 11 :(得分:1)
当我运行mvn compile
时,我在控制台中遇到错误:
[INFO] Changes detected - recompiling the module!
[WARNING] File encoding has not been set, using platform encoding Cp1252, i.e. build is platform dependent!
[INFO] Compiling 1087 source files to C:\Code\DevVNextComplete\Development_vNext\Source\JARS\target\classes
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
[INFO] 1 error
<强> [分辨率] 强>
我在环境变量中添加了JAVA_HOME变量,然后就可以了。
答案 12 :(得分:1)
Installed JRE 在我的情况下,我通过删除重复的名称解决了问题,我只保留了一个名称:jdk.1.8.0_101
答案 13 :(得分:1)
要检查Maven使用的内容,请打开命令行并输入:
mvn –version
验证JAVA_HOME是指JDK home而不是JRE
在Windows上:
转到系统属性 - &gt;高级系统设置 - &gt;高级 - &gt;环境变量,在System variables部分选择JAVA_HOME变量,然后单击Edit 填写表格如下 变量名称:JAVA_HOME 变量值:
在Unix上:
export JAVA_HOME=<ABSOLUTE_PATH_TO_JDK>
请参阅this link
答案 14 :(得分:1)
遇到了同样的问题,使用以下方法将日志指向eclipse中的bin文件夹: 窗户&gt;偏好&gt; java&gt;已安装的JRE&gt;删除任何现有的JRE并将其指向您的java bin文件夹(主要位于C:\ Program Files \ Java \ jdk1.8.x_xx下)。
然后运行maven install它应该可以工作。
答案 15 :(得分:0)
答案 16 :(得分:0)
通过在命令提示符下键入%JAVA_HOME%
,确保已设置echo %JAVA_HOME%
。如果您没有该设置,那么您需要将您的Java路径添加到Window的环境变量中。
答案 17 :(得分:0)
我通过在我的环境变量中提供 JAVA_HOME 并重新启动 intellij 解决了这个问题
答案 18 :(得分:0)
Maven需要JDK进行编译。在Eclipse中,您需要将JRE更改/替换为JAVA_HOME指向的JDK路径。导航到Window&gt;偏好&gt; Java&gt;已安装的JRE。
确保pom.xml中的maven-compiler-plugin具有JAVA_HOME中java版本的源和目标
http://learn-automation.com/maven-no-compiler-is-provided-in-this-environment-selenium/
答案 19 :(得分:0)
1.转到Windows - &gt;首选项 - &gt; Java - &gt;已安装的JRE - &gt;执行环境
2.在“执行环境”框中选择您当前使用的Java版本。 因此,在“Compatible JREs”框中,您可以看到“ jre1.8.0_102 [完美匹配] ”(如果您的java版本是1.8)。然后尝试使用maven构建。
答案 20 :(得分:0)
如果你在命令窗口中在eclipse之外工作 通过在命令窗口中输入以下命令,确保您拥有正确的JAVA_HOME并且该目录包含编译器:
dir %JAVA_HOME%\bin\javac.*
答案 21 :(得分:0)
检查pom.xml中的java版本和Eclipse中的jre版本 - &gt; Window-&gt; Preferences-&gt;已安装的JRE。在我的情况下,pom.xml有不同的版本(它有1.8而eclipse使用1.7)。将pom.xml中的版本修复为1.7。
答案 22 :(得分:0)
对于我(在Windows 10上),我收到错误&#34;在此环境中没有提供编译器&#34;在我运行mvn install
时在Windows命令提示符下。该修复程序正在将 JAVA_HOME 环境变量更改为指向我的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
。
答案 23 :(得分:0)
如果您正在使用maven,请在plugins标记内的pom.xml中添加以下标记(根据需要更新版本)。
<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>
答案 24 :(得分:-1)
我遇到了Eclipse Neon的问题,即使我在Preferences-> Java-> Installed JREs下添加了正确的位置,工作区的默认设置实际上也没有改变。这是在我创建的用于代码分支的新工作区中。它最初设置为JRE位置,而不是JDK。即使更改了首选项,我也可以使用命令行进行构建,但是在Eclipse中进行构建不会产生编译器错误。请看
Maven Package Compilation Error
对于我的答案,必须手动编辑哪些Eclipse配置文件以使Eclipse识别正确的默认工作区。我仍然不知道为什么首选项设置没有保留到新工作区的配置中。