无法在项目上执行目标 org.apache.maven.plugins:maven-compiler-plugin (default-compile):致命错误编译:未找到 tools.jar

Posted

技术标签:

【中文标题】无法在项目上执行目标 org.apache.maven.plugins:maven-compiler-plugin (default-compile):致命错误编译:未找到 tools.jar【英文标题】:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin (default-compile) on project: Fatal error compiling: tools.jar not found 【发布时间】:2015-06-24 09:15:45 【问题描述】:

我已经完成了http://www.tutorialspoint.com/jsf/jsf_environment_setup.htm中提供的所有步骤

Apache Maven 和 Apache tomcat 都准备好了。我还设置了环境。我在 Eclipse 中创建了 Maven 项目,当我使用 Maven 构建运行它时,它给出了构建失败。

它给出了这个错误

“未能执行目标 org.apache.maven.plugins:maven-compiler-plugin:2.5.1:compile (default-compile) on project Hello2: Fatal error compile: tools.jar not found: C:\Program文件\Java\jre1.8.0_40..\lib\tools.jar"

我该怎么办?

【问题讨论】:

您检查过您的环境变量中是否定义了 java_home 吗? 是的环境变量是在系统路径中定义的。 看起来你已经定义了指向 JRE 而不是 JDK 的 JAVA_HOME 我已经在系统路径中直接设置了JRE和JDK。 @khmarbaise 你是对的。在我将JAVA_HOME 环境变量更改为指向/usr/lib/jvm/java-8-oracle" 后,它起作用了。 【参考方案1】:

我在 Eclipse Oxygen 中使用带有 JDK 1.9 的 Windows 操作系统。我在使用 maven 使用 JDK 1.9 编译项目时遇到了这个问题,我通过更改 C:\apache-maven-3.5.2\bin 中的 mvn.cmd 文件解决了这个问题。

之前:

set "JAVACMD=C:\Program Files\Java\jdk-9.0.1\bin\java.exe"

之后:

set "JAVACMD=C:\Program Files\Java\jdk1.8.0_91\bin\java.exe"

另外,请确保您用于构建项目的编译器在您使用的 IDE 中正确配置。

【讨论】:

上面的问题表明 JDK 8 已经被使用(参见“tools.jar not found”之后的路径引用。因此,上面建议从 JDK 9 更改为 JDK 8 的答案可能无法解决问题。 路径引用中提到的 JRE 路径。我提到要正确提供 JDK 路径。找不到工具 jar 可能是未正确设置 JDK(直到 1.8)路径或未正确设置 JAVA_HOME 值的原因。我的回答是为我面临的问题的可能原因之一提供解决方案。【参考方案2】:

.m2 -> repository 删除存储库,然后右键单击项目Run as... -> Maven install

之后,再次右键单击项目Maven -> Update project -> Check Update of Snapshots 并单击Ok 选项。

【讨论】:

【参考方案3】:

我删除了我的 .m2 本地本地存储库并重新运行它。它有效。

【讨论】:

我会小心的。这将删除所有本地 Maven 依赖库。完成此操作后,您可能需要在每个项目上重新安装。我也认为这解决了问题可能是巧合。 感谢您的建议,当时我的.m2刚刚安装,所以我删除了它,它并没有影响任何环境,但是您所说的确实很有帮助。谢谢【参考方案4】:

检查 JAVA 版本,它应该在所有地方都相同。 查看屏幕截图。

    pom.xml JAVA 构建路径 JAVA 编译器

注意:要查看 2 和 3 的配置窗口...右键单击项目并单击属性

【讨论】:

【参考方案5】:

您需要将 eclipse 的默认安装“jre”设置为 jdk。 Eclipse Window Menu => Preferences => 在左侧导航窗格中输入搜索字符串“jre” => 在左侧导航窗格中单击“Installed JREs” => 单击 Add 并浏览到您的 JDK。 => 单击 JDK 旁边的复选框以使其成为默认值。

如果您还没有 java jdk,您可能需要下载并安装它。

还要确保将 eclipse 运行配置设置为使用您设置的默认 jdk:运行菜单 => 运行配置 => 为您的项目选择运行配置 (Maven 构建) => 单击 JRE 选项卡 => 在运行时 JRE 下选择“工作区默认值”。

【讨论】:

@abdul 有一个赞成和接受答案选项。请也这样做 我还有一个问题。我必须在 Apache Tomcat 服务器上部署应用程序。右键单击服务器 -> 添加和删除 ->。但我收到此消息“没有可以从服务器添加或删除的资源” 一个问题,你有答案。请接受他的回答并投票。如果这是一个新问题,请将其发布为新问题 另外,Apache Tomcat 不是服务器,它只是一个容器 好的,先生,但我不能投票,因为我的声誉低于 15。

以上是关于无法在项目上执行目标 org.apache.maven.plugins:maven-compiler-plugin (default-compile):致命错误编译:未找到 tools.jar的主要内容,如果未能解决你的问题,请参考以下文章

在 release:prepare 和 release:perform 上激活配置文件

SonarQube 无法在空实例“模块已经是项目的一部分”上执行目标

无法执行目标org.apache.maven.plugins:maven-deploy-plugin:2.7:在项目上部署default-deploy

无法在项目 mavenproject2 上执行目标 org.codehaus.mojo:exec-maven-plugin:1.3.2:exec (默认):

无法在项目上执行目标 org.apache.maven.plugins:maven-compiler-plugin:3.8.1:testCompile (default-testCompile)

无法在项目 fhirql 上执行目标 org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile):致命