当我尝试生成war文件时,它会显示一些错误,如
[ERROR] Unable to locate the Javac Compiler in:
[ERROR] C:\Program Files\Java\jre7\..\lib\tools.jar
当我echo %path%
显示
C:\Windows\System32;D:\name\name1\Softwares\Maven\apache-maven-3.0.4\b
in;C:\Program Files\Notepad++\;%JDK_HOME%
当我做echo %JDK_HOME%
D:\name\name\core java\software\Java\Java_1.6.0_04_win\jdk1.6.0_04\bin
当我的环境变量是jdk时,我不知道maven为什么会引用jre。我还将已安装的JRE更改为jdk1.6。
答案 0 :(得分:148)
仅在Eclipse设置中
它有4个步骤TODO。
步骤1:右键单击Eclipse项目属性
第2步:Java构建路径 - >库
步骤3:选择JRE系统库 - >点击修改按钮 - >单击已安装的JRE ...按钮
步骤4:将JRE编辑为设置JRE Home = JAVA_HOME
<强> ScreentShot:强>
答案 1 :(得分:35)
转到窗口 - &gt;偏好... - &gt; Java - &gt;已安装的JRE
编辑JRE Home = JAVA_HOME或JAVA_HOME \ jre
例如,如果您使用安装在C:\ Program Files中的jdk1.6.0_04,请执行以下更改:
C:\ Program Files \ Java \ jdk1.6.0_04 \ jre或C:\ Program Files \ Java \ jdk1.6.0_04而不是默认位于C:\ Program Files \ Java \ jre7
答案 2 :(得分:4)
有同样的问题,但在我的情况下,目录eclipse指出JRE是JDK。所以,我搜索了那些tools.jar并且在那里。
我做了
然后编译好
答案 3 :(得分:3)
这是一个Eclipse问题。当我尝试使用
从命令行构建它时mvn package
它运作良好。
答案 4 :(得分:2)
JDK_HOME变量应始终指向jdk的基础目录,而不是bin目录:
D:\name\name\core java\software\Java\Java_1.6.0_04_win\jdk1.6.0_04
已定义,修复您的路径
C:\Windows\System32;D:\name\name1\Softwares\Maven\apache-maven-3.0.4\bin;C:\Program Files\Notepad++\;%JDK_HOME%\bin
答案 5 :(得分:2)
我有同样的错误,因为JUNIT版本,我有3个 3.8.1我已经改为4.8.1。
所以解决方案是
你必须去POM,并确保你的依赖看起来像这样
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.1</version>
<scope>test</scope>
</dependency>
答案 6 :(得分:2)
听起来您将JDK_HOME
定义为用户变量并将PATH
定义为系统变量,反之亦然 - echo %PATH%
不应包含未解析的变量,例如...;%JDK_HOME%
确保%JDK_HOME%\bin
路径在PATH变量上,未解析,即使您必须明确地放置路径。
答案 7 :(得分:1)
我尝试了以上所有建议,但这些建议对我来说并不奏效,但我发现了如何解决该错误的方法。
以下步骤使项目成功编译:
在项目浏览器中,右键单击项目,选择“属性” 在右侧的树中,转到Java构建路径。选择选项卡“库”。 点击“添加库”。 选择JRE系统库。点击下一步。 选择单选按钮Alternate JRE。点击“已安装的JRE”。选择具有正确版本的JRE。单击“应用”,然后关闭。在下一个屏幕中,单击“完成”。 在属性窗口中,单击“应用”并关闭。 在项目资源管理器中,右键单击pom.xml并选择run as> maven build 在目标文本框中,输入“安装”。点击运行。
在我看来,这使得该项目得以成功构建。
答案 8 :(得分:0)
对于其他在Eclipse中即使将路径正确设置为JDK仍会遇到此问题的人,您需要从已安装的JRE中删除其他JRE。
转到窗口-> 首选项-> Java -> 已安装的JRE
分别选择未使用的JRE,然后删除
对我有用。
答案 9 :(得分:0)
目前的答案都没有帮助我。我们得到类似的东西:
SKPaymentQueue.default().transactions
发生这种情况是因为Java安装已确定它是JRE安装。期望在JRE子目录的上方中有JDK内容,因此路径中的[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:
#.#.#:compile (default-compile) on project Streaming_Test: Compilation failure
[ERROR] Unable to locate the Javac Compiler in:
[ERROR] /opt/java/J7.0/../lib/tools.jar
。我们的../lib
在tools.jar
中,而不在$JAVA_HOME/lib/tools.jar
中。
不幸的是,我们没有选择在我们的操作系统上安装JDK的选项(不要问),所以这不是一个选择。我通过将以下内容添加到行家$JAVA_HOME/../lib/tools.jar
中来解决了这个问题:
pom.xml
通过将可执行文件指向正确的位置,至少可以避免编译失败。
答案 10 :(得分:0)
尽管以上针对该问题的一些非Eclipse答案没有提及Eclipse,但它们需要更改路径变量。另一种方法是使用命令行选项java.home,例如:
mvn package -Djava.home="C:\Program Files\Java\jdk1.8.0_161\jre"
请注意最后的\ jre-令人惊讶的必要性。
答案 11 :(得分:0)
如果您正在执行上述所有可能混淆的步骤,而我们的问题只是缺少tools.jre,那么只需通过以下步骤添加tools.jre,问题就解决了。
第1步:在eclipse中转到Windows - &gt;偏好
第2步:Java - &gt;已安装的JRE(双击它)
第3步:点击修改按钮 - &gt;单击“添加外部JAR”
步骤4:现在选择tools.jar path
现在应用更改并且工作正常。
答案 12 :(得分:0)
这取决于Maven版本。当您安装较新版本的Maven时,不会出现此错误。您还可以使用tools.jar文件lib / tools.jar添加另一个目录 - 它也解决了这个问题。
答案 13 :(得分:0)
我可以通过以下步骤解决:
右键单击项目选择Build path - &gt;配置构建路径 - &gt; 选择Libraries选项卡 - &gt;然后选择JRE系统库[版本你 对我来说它是JavaSE-1.7] - &gt;点击编辑按钮 - &gt;在JRE系统中 库窗口选择执行环境 - 在下拉列表中即可 选择我列出的JDK,它的JavaSE-1.7 - &gt;在此旁边点击 环境按钮 - &gt;在“执行环境”窗口中,您必须这样做 再为我选择你的Java SE JavaSE-1.7 - &gt;你选择它吧 将在Compatible JREs选项卡中有选项,因此请选择所需的JDK 在我的情况下,它有jdk1.7.0_25。
单击“确定”并通过执行适当的操作完成其余窗口 OK /完成。
最后做Maven Clean和Maven安装。
答案 14 :(得分:0)
我遇到了类似的问题,因为没有人发布类似于我的方法,我就去了。
导航到您要启动的运行配置 选择了JRE选项卡。调整&#34;运行时JRE&#34;在那里,你准备好了。
答案 15 :(得分:0)
在Eclipse中,导入Maven项目或调用“更新源”等操作在运行Eclipse的同一JVM中运行。如果JVM来自不属于JDK的JRE,则不会有Java编译器(tools.jar)。
因此,要从Eclipse中启动Maven,用于启动的JRE也需要来自JDK。默认情况下,Eclipse会注册JRE,但它可以在“Window / Preferences ... / Java / Installed JREs”首选项页面上配置,如上所述Parthasarathy
或者您可以在pom.xml中指定compilerId,因此Maven在编译Java代码时不会查找JDK:
<plugin>
<artifactid>maven-compiler-plugin</artifactid>
<configuration>
<compilerid>eclipse</compilerid>
</configuration>
<dependencies>
<dependency>
<groupid>org.codehaus.plexus</groupid>
<artifactid>plexus-compiler-eclipse</artifactid>
<version>xxxx</version>
</dependency>
</dependencies>
</plugin>
答案 16 :(得分:-1)
对于 Intellij Idea 设置适当的一切(与此类似):
JAVA_HOME = C:\Program Files\Java\jdk1.8.0_60
JRE_HOME = JAVA_HOME\jre
并且不要忘记重启想法。该程序在启动时获取变量,因此在程序运行时对环境变量的任何更改都不会产生任何影响。