我正在使用m2eclipse在Eclipse中编译一个项目。我在Eclipse中设置了JDK路径,如下所示:
Windows-->preferences-->installed jres--> jdk1.7.xx path
但这显示错误
[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
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.424s
[INFO] Finished at: Tue Oct 29 15:21:01 IST 2013
[INFO] Final Memory: 5M/15M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler- plugin:3.1:compile (default-compile) on project TEST-WEB: Compilation failure
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
答案 0 :(得分:846)
答案 1 :(得分:122)
对我而言,这正是日食的主人所抱怨的
所以,我按Edit
按钮并更改JDK文件夹的路径,然后清理项目,一切都开始工作
答案 2 :(得分:112)
对我来说,在我对pom.xml进行此更改之前没有任何工作:
<build>
...
<plugins>
...
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<fork>true</fork>
<executable>C:\Program Files\Java\jdk1.7.0_45\bin\javac.exe</executable>
</configuration>
</plugin>
</plugins>
</build>
其他笔记
我可以看到m2e正在JRE中执行,而不是JDK。我没有改变这一点,包括将其添加到eclipse.ini:
-vm
C:\Program Files\Java\jdk1.7.0_45\bin\javaw.exe
最后,我从来没有在JDK中执行m2e,但是明确地设置Java编译器(如上所述)就可以了。
答案 3 :(得分:91)
JAVA_HOME
环境变量设置为JDK根文件夹 - 如果运行命令行或maven(mvn
)则需要。
JAVA_HOME
以获取更多信息)答案 4 :(得分:34)
我试图在eclipse中进行maven构建时遇到此错误。
对我来说,答案是Run
- &gt; Run Configurations
,选择我正在运行的Maven Build
(从左侧面板)。然后,我点击了JRE
标签,然后选择了Workspace default JRE
答案 5 :(得分:34)
在我的情况下,通过这样做解决了这个问题:
转到“运行时配置”并将JRE配置为JDK。
https://www.gnu.org/software/make/manual/html_node/Environment.html
答案 6 :(得分:27)
转到Windows - &gt;偏好 - &gt; Java - &gt;已安装的JRE
点击添加 - &gt;标准VM - &gt;下一步 - &gt;目录
并浏览JDK
在我的案例中,路径是C:\Program Files\Java\jdk1.8.0_111
然后点击完成。
选择JDK - &gt;申请 - &gt;确定
你已经完成了。
答案 7 :(得分:12)
我尝试了以上所有内容,但仍然收到相同的错误消息。
在我的情况下,实际的JRE在项目特定的构建路径中被错误地用作JRE系统库,这显然超越了此处讨论的所有其他设置。
如果情况确实如此,请尝试以下方法:
答案 8 :(得分:9)
如果jaipster的答案不起作用的另一种选择是去:
窗口&gt;偏好&gt; Java&gt;已安装的JRE
然后编辑jre,使其指向jdk而不是jre(jre包编辑器中提交的jre home)
这对我有用。
答案 9 :(得分:9)
我遇到同样的问题,我只是将JAVA_HOME
添加到环境变量。
JAVA_HOME
打开命令提示符并运行mvn clean install
(不要使用intellij终端)。答案 10 :(得分:7)
如果从Maven
运行cmd
命令,请确保在运行命令之前设置jdk路径。就我而言,我创建了一个包含以下内容的.bat
文件:
set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_60
start cmd.exe /k "cd c:\aem_proj\sis\aau"
答案 11 :(得分:7)
我在尝试使用mvn clean install
构建项目应用程序的jar文件时遇到了同样的问题,尽管应用程序在从Eclipse运行时工作正常。
问题确实太天真了,我没有设置 JAVA_HOME 环境变量。我所要做的就是将JAVA_HOME环境变量设置为JDK目录,确保它不是&#34; \ bin&#34; 且没有分号&#34 ;;& #34; 强>
我的理解如下:
该应用程序在Eclipse中运行良好,因为 JRE系统库指的是JDK文件夹中的JRE 而不是没有JDK的外部JRE文件夹。 [正如其他答案所解释的那样]
此配置不适用于我们在命令提示符下运行的 maven 命令。它仍会查找JAVA_HOME变量来访问JRE系统库,当找不到它时,它会引用没有JDK的外部JRE文件夹。
答案 12 :(得分:6)
有几个选项需要指定。
步骤: 正好在项目资源管理器中的项目 转到Run-&gt;运行配置 - &gt;单击Maven Build - &gt;单击您的构建配置/或创建一个新配置。 您将在下面看到窗口作为给定的快照,单击那里的JRE选项卡。
您看到有3个选项1)工作区默认JRE 2)执行环境3)备用JRE 1)工作区默认JRE从顶部的“窗口”菜单设置 - &gt;偏好 - &gt; Java - &gt;已安装的JRE - 您可以添加您的jdk 2)执行环境jdk可以在@ksnortum
中提到的pom.xml中设置<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<fork>true</fork>
<executable>C:\Program Files\Java\jdk1.7.0_45\bin\javac.exe</executable>
</configuration>
</plugin>
</plugins>
3)Alternate JRE可用于从目录中选择jdk
答案 13 :(得分:4)
对我来说,JRE位于JDK路径之前的PATH环境变量中
所以我删除了1.可能交换它们也会修复它。
答案 14 :(得分:3)
对于这个问题还有另一个可能的答案,我可能是唯一一个愚蠢地偶然发现这个问题的人,但我认为值得补充,因为我已经没有其他答案了。设置正确。
安装JDK时,安装程序会询问您要安装文件的位置。默认情况下,在Windows上,这类似于C:\ Program Files \ Java \ jdk1.8.0_74(或您正在安装的任何版本)。
然后它会要求您提供一个安装JRE的目录,默认情况下是C:\ Program Files \ Java \ jre1.8.0_74。
请注意,一个是 jdk 1.8.0_74,另一个是 jre 1.8.0_74
我匆匆忙忙,认为安装程序两次问我同样的问题,将我的JDK和JRE安装位置设置为D:\ devtools \ jdk \ jdk1.8.0_74,导致安装程序覆盖JDK JRE。这导致(除其他外)我的JDK bin中缺少javac.exe,以及OP在我所有maven版本中报告的相同错误。
答案 15 :(得分:3)
我的答案与Windows环境中的Eclipse有关。
我去了Preferences-> Java->已安装的JRE 我在这里没有看到JDK。我只在这里看到了JRE。 因此,我添加了JDK,然后取消选中了JRE。然后检查了JDK。 然后,我使用“运行配置”运行了POM文件。选择选项卡JRE,然后选择选项“ Workspace Default ...”。 这是图片
答案 16 :(得分:3)
我得到了一个解决方案。
此问题的最常见解决方案是将 jdk location 更改为 已安装的JRE ,而不是 JRE位置 但这一次没有解决我的问题。
所以我做了以下解决问题。 展开已安装的JRE 标签,您会找到 执行环境 标签。
单击您喜欢的执行环境。就我而言,它是 JAVASE-1.8 。它显示了2个选项。 JDK和JRE 。选择 JDK ,问题就解决了。
答案 17 :(得分:2)
在我的情况下,我有系统变量路径有&#34; C:\ ProgramData \ Oracle \ Java \ javapath&#34;位置。
In&#34; C:\ ProgramData \ Oracle \ Java \ javapath&#34;位置java,javaw只有那里。所以我得到了同样的错误。
删除&#34; C:\ ProgramData \ Oracle \ Java \ javapath&#34;中的所有文件后文件夹我的错误得到了解决。
答案 18 :(得分:2)
尽管问题是关于Eclipse
安装程序的错误,但是认为用IntelliJ
和Windows 10安装程序修复此错误的答案可能也有帮助。
1 。转到File
-> Settings
-> Build, Execution, Deployment
-> Build Tools
-> Maven
-> Importing
2 。如下所示将JDK
的{{1}}设置为Importer
还应在环境变量->系统变量处将JAVA_HOME
设置为JAVA_HOME
路径,并将JDK
添加到路径系统变量
答案 19 :(得分:2)
我只是浪费了3个小时来解决这个问题,直到我设法让它发挥作用。 发出mvn编译命令时,我在Eclipse终端中出现了这个错误:
此环境中未提供编译器。也许您正在运行JRE而不是JDK?
所以我在这里读到我必须创建一个名为JAVA_HOME的新系统变量并使其指向jdk安装文件夹。但是这会产生另一个错误:
不再支持来源选项1.5。使用1.6或更高版本
无法找到此修复程序...
因此,安装Java SE Development Kit 8的修复程序就此消失了! 我正在使用9认为如果它是最新的那就必须更好......
总之...
从这里安装JDK8: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
然后定义JAVA_HOME系统环境值 - 这里的教程: https://docs.oracle.com/cd/E19509-01/820-3208/inst_cli_jdk_javahome_t/
重启Eclipse并享受! (至少那是我的所作所为)
希望这可以让一些可怜的流浪者免受麻烦。
答案 20 :(得分:1)
问题语句 =在此环境中未提供编译器。也许您是在JRE而不是JDK上运行?聪明
解决方案
请按如下所示设置环境变量 e以解决该问题
变量名:JAVA_HOME
变量值:C:\ Program Files \ Java \ jdk1.8.0_202
变量名称:M2_HOME
变量值:C:\ Program Files \ apache-maven-3.6.0
此外,在“ 系统变量”中添加Java和Maven路径,如下所示:
C:\ Program Files \ Java \ jdk1.8.0_202 \ bin
C:\ Program Files \ apache-maven-3.6.0 \ bin
答案 21 :(得分:1)
我面临同样的问题,我犯的错误是我只在路径var中添加了jre路径,而不是jdk路径。当jdk路径被添加到路径并构建maven项目时它的工作完美。谢谢所有
答案 22 :(得分:1)
当我创建一个新的EC2 ubuntu 16.04实例并安装了Java并运行mvn clean package时,遇到了相同的错误,下面的解决方案对我有用。
如果您在Ubuntu服务器上工作,则可以尝试再次安装Java,为此您可以使用此答案How to install the JDK on Ubuntu Linux
答案 23 :(得分:1)
添加新的JRE定义(选择路径JDK),为我工作。
答案 24 :(得分:1)
在Windows 7-64位中,存在一个权限问题,该问题阻止安装程序将文件C:\ Program Files \ Java \ jdk1.6.xx \ lib \ tools.jar解压缩到本地。这个jar文件是3.x版本的maven-compiler-plugin而不是通常的javac
解决方案:以管理员身份运行Java JDK安装程序!并确保tools.jar位于C:\ Program Files \ Java \ jdk1.6.xx \ lib \
如果您使用的是m2e maven集成插件,则希望通过Eclipse中的以下步骤来查看Eclipse可见的文件:
转到窗口->首选项-> Java->已安装的JRE 选择您正在使用的JDK(C:\ Program Files \ Java \ jdk1.6.xx) 按Edit查看jar列表,包括tools.jar,或者您可以将其添加为Add External JAR。 然后通过以下步骤配置Maven运行:
运行->运行配置->填写名称,基本目录和目标。 然后在同一窗口中,移至“ JRE”选项卡并指向JDK \ jdk1.6.xx \
答案 25 :(得分:1)
试试这个。
<build>
...
<plugins>
...
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<fork>true</fork>
<executable> path to jdk \bin\javac.exe</executable>
</configuration>
</plugin>
</plugins>
</build>
答案 26 :(得分:1)
答案 27 :(得分:0)
答案 28 :(得分:0)
我尝试大多数答案都没有成功。 对我有用的是(遵循https://stackoverflow.com/a/21279068/2408893之后):
答案 29 :(得分:0)
我去了Preferences-> Java->已安装的JRE,我在这里没有看到JDK。我只在这里看到了JRE。所以我添加了JDK。
在这里,我们必须强制删除JRE,而不仅仅是取消选中。
答案 30 :(得分:0)
你是否遗漏了任何maven构建。
除了上面的JRE更改。我仍然遇到类似的问题。我添加它后工作正常,我缺少JUnit依赖。
希望这会有所帮助。
答案 31 :(得分:0)
关于这个问题有几个答案,但都与JDK的正确路径配置有关,但只有JRE才能解决这个问题。
我们只需要使用部署程序集来配置Java EE Project的打包war文件的路径,然后重新运行maven-install。
使用部署程序集的步骤:
右键单击Jave EE项目 - &gt;单击“属性” - &GT;单击部署程序集
点击添加按钮 - &gt;单击文件中的存档 系统 - &gt;点击下一步 - &gt;点击添加 - &gt;去吧 .m2 \ respository目录并搜索生成的war文件 - &gt; 选择war文件 - &gt;点击打开按钮 - &gt;点击Apply - &gt;确定
右键点击该项目 - &gt;单击Maven Install下 运行方式
这将成功构建您的项目,而不会出现任何编译器错误。
希望这可以解决没有JDK的问题。
答案 32 :(得分:0)
除了上面的回答之外,我可以说只是尝试从终端(Eclipse之外)运行Maven。通过这种方式,如果它是从外部构建而不是在Eclipse中构建,那么您可以理解问题应该在Eclipse中。