无法找到tools.jar

时间:2011-04-20 13:07:20

标签: java tools.jar

我正在用Java构建一个项目。

我有这个错误:

Unable to locate tools.jar. Expected to find it in C:\Program Files\Java\jre6\lib\tools.jar

我已经安装了JDK,文件夹:C:\Program Files\Java\jre6\lib在我的系统中,但文件tools.jar不存在。

33 个答案:

答案 0 :(得分:179)

是的,您已经下载并安装了Java Runtime Environment(JRE)而不是Java Development Kit(JDK)。后者有tools.jar,java.exe,javac.exe等。

答案 1 :(得分:86)

如果这对任何人来说仍然是一个问题,我对之前的答案有一些澄清。我使用只安装了JDK的ant遇到了同样的问题。虽然,JDK安装程序给了我一个像这样的目录结构:

 Directory of C:\Program Files\Java

05/08/2012  09:43 AM    <DIR>          .
05/08/2012  09:43 AM    <DIR>          ..
05/08/2012  09:46 AM    <DIR>          jdk1.7.0_04
05/08/2012  09:19 AM    <DIR>          jre6
05/08/2012  09:44 AM    <DIR>          jre7
               0 File(s)              0 bytes

当我运行ant时,它抱怨没有在jre7子目录下找到tools.jar。直到我set "JAVA_HOME=C:\Program Files\Java\jdk1.7.0_04",错误就消失了。

答案 2 :(得分:38)

  1. 安装Java SDK

  2. 添加一个名为 JAVA_HOME 的系统环境变量,其值为JDK location。
    转到“控制面板”\“系统”和“安全\系统”。高级系统设置,环境变量,系统变量,新...示例:
    变量名称: JAVA_HOME
    变量值: C:\ Program Files \ Java \ jdk1.7.0_21

  3. 关闭/重新打开CMD窗口,以便在尝试重新运行ant命令之前新变量生效。

答案 3 :(得分:27)

我遇到了同样的问题,复制 C:\Program Files\Java\jdk1.6.0_26\lib\tools.jar C:\Program Files\Java\jre6\lib\ext为我工作

答案 4 :(得分:10)

JAVA_HOME环境变量设置为指向C:\Program Files\Java\jdk1.7.0_02

答案 5 :(得分:10)

如果你在Linux中,你可以通过在系统上安装java来解决这个问题:

sudo apt-get install openjdk-7-jdk openjdk-7-jre

答案 6 :(得分:6)

不,根据您的目录结构,您已经安装了JRE,而不是JDK。有区别。

C:\Program Files\Java\jre6\lib
                      ^^^^

应该是这样的:

C:\Program Files\Java\jdk1.6.0_24

答案 7 :(得分:5)

不要花太多时间寻找tools.jar。如果你得到这样的错误,不要生气。

如果您已经拥有java JDK 1.5,请转到lib文件夹,tools.jar应该在那里可用。将其复制并粘贴到您的ant bin文件夹中,然后尝试使用ant -version命令。

你应该看到预期的结果。

答案 8 :(得分:4)

我在linux机器上遇到了同样的问题。起初我很沮丧,因为我已经安装了JDK和JRE。我同时使用版本1.6,1.7和1.8,并且我已经玩了很多替代方案,以便正确设置所有内容。

解决这个问题非常愚蠢,但反直觉。当我使用正确的JDK时,我注意到maven抱怨的工具路径 - 它期待它是

$JAVA_HOME\..\lib\tools.jar

$JAVA_HOME变量直接指向我的jdk文件夹(/usr/local/java,它也是正确的$PATH条目和备用sym链接)。它实际上会在java目录中搜索lib文件夹 ,因为:

$JAVA_HOME\..\lib\tools.jar

将解析为

/usr/local/lib/tools.jar

并且这不是有效的位置。

要解决此问题,$JAVA_HOME变量应改为指向此位置/usr/local/java/jre(假设JDK路径为/usr/local/java) - 内部实际存在jre个文件夹JDK安装目录,每个JDK附带。这个新设置将使maven查看JRE目录,它是JDK的一部分:

$JAVA_HOME\..\lib\tools

现在解析为

/usr/local/java/jre/../lib/tools.jar

最后到

/usr/local/java/lib/tools.jar

这是tools.jar真正居住的地方。

因此,即使您确实使用JDK而不是JRE,$ JAVA_HOME也必须指向JRE。请记住,OS替代方案仍应引用JDK。

答案 9 :(得分:3)

如果您已经安装了JDK 9.0.1,那么您也会遇到此问题,因为不推荐使用tools.jar。请参阅migration document

答案 10 :(得分:3)

转到安装java的jdk路径

例如在我的PC JDK中安装以下路径

“C:\ Program Files \ Java \ jdk1.7.0_17 \”;

转到lib文件夹,例如“C:\ Program Files \ Java \ jdk1.7.0_17 \ lib”

lib目录中的

有tool.jar文件

复制此文件并将其传递到jre7目录的lib forlder中 例如

“C:\ Program Files \ Java \ jre7 \ lib”

答案 11 :(得分:2)

你可能在Ubuntu上面临类似的问题:

render_to_response(...)

问题在于JAVA_HOME设置不正确。

所以,在使用Java8的Ubuntu 14.04 x64上:

Embedded error: tools.jar not found: /usr/lib/jvm/java-7-openjdk-amd64/jre/../lib/tools.jar

答案 12 :(得分:2)

我的css-loader sass-loader style-loader 中有JDK_path(C:\Program Files\Java\jdk1.7.0_79),JAVA_HOME中有JDK_path \ bin。但是,我的蚂蚁仍在使用JRE而不是JDK。

问题是我在PATH变量中的JDK_path之前有C:\ProgramData\Oracle\Java\javapath。我只是在oracle之前移动了我的JDK_path,问题就解决了。

答案 13 :(得分:2)

即使安装了Java JDK并将JAVA_HOME设置为..\jdk1.6.0_45\bin文件夹,我也遇到了同样的问题。

Ant仍在尝试在tools.jar文件夹中找到C:\Program Files\Java\jre6\lib 我已通过添加JAVACMD环境变量并将其路径设置为java.exe文件夹中的jdk来修复此问题。
就我而言,它是C:\Program Files\Java\jdk1.6.0_45\bin\java.exe

答案 14 :(得分:1)

确保将%JAVA_HOME%和%JAVA_HOME%/ bin路径添加到PATH变量中。

关于将tools.jar复制到正确位置的所有答案充其量都是个坏主意。

确保您的IDE能够按照设计和预期的方式找到这些罐子。

答案 15 :(得分:1)

通过在运行之前设置JAVA_HOME变量,我在windows os中解决了它,如下所示:

设置JAVA_HOME = C:\ Program Files \ Java \ jdk1.8.0_111

答案 16 :(得分:0)

如果您在RHEL环境中,则包含tools.jar的软件包名称将以“ openjdk-devel”结尾。

答案 17 :(得分:0)

值得注意的是,从 Java 9 开始,tools.jar 已从 JDK 中删除。https://docs.oracle.com/javase/9/migrate/toc.htm#JSMIG-GUID-055EA9F4-835E-463F-B9E1-9081B3D9E55D

如果人们在使用 JDK 9+ 编译 Java 程序时遇到此问题,您可能需要检查项目的依赖项。

就我而言,我尝试使用 AspectJ 和 Maven 插件 org.codehaus.mojo:aspectj-maven-plugin:1.11 编译项目。在网上搜索后,我找到了一个支持 Java 9+ 的替代方案:dev.aspectj:aspectj-maven-plugin:1.13.M3

答案 18 :(得分:0)

Step1检查您的jdk已安装。并设置了可变路径。 步骤2取消食并重新安装。其他方面,这将仍然是一个问题

答案 19 :(得分:0)

当未设置环境变量JAVA_HOME或指向错误的目录时,会发生这种情况。您可以通过运行以下命令来查看Ant的值:

ant -diagnostics

,然后寻找显示java.home的行。如果您安装了grep,则可以简单运行:

ant -diagnostics | grep java.home

要解决此问题,请将JAVA_HOME环境变量设置为JDK目录。虽然* nix和Windows之间的变量设置略有不同,但其余变量在所有操作系统上均相同。因此,使用Windows提供的GUI或setsetx命令都没有关系,只要在调用ant之前已设置了值即可(如果已全局设置它,那么在打开外壳/终端窗口之前它必须存在。

设置JAVA_HOME后,您可以运行ant -version,例如,获取结果

2020年5月10日编译的Apache Ant(TM)1.10.8版本

答案 20 :(得分:0)

如果有帮助,对我来说,问题是我在PATH环境变量中有2个条目,它们指向一个包含javaw可执行文件的位置。

我清理了变量以确保“%JAVA_HOME%\ bin”是引用包含我的Java可执行文件的位置的唯一条目。

答案 21 :(得分:0)

正如许多人提到的,看起来您正在使用JRE而不是JDK来查找tools.jar文件。

我还要提及的是,在最新版本的JDK上,没有更多的tools.jar文件。我下载了截至今天为止最新的JDK(JDK版本12),但找不到任何tools.jar。我必须在https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html处下载JDK版本8(1.8.0)以获取tools.jar文件。我下载了该版本,并下载了tools.jar文件,并将其放入最新版本的lib文件夹中。

答案 22 :(得分:0)

也许您已经更新了OS中的JRE,并且附加项已在环境变量的“路径”中添加了一个条目“ ... / Oracle / jer”,该条目将覆盖您的JAVA_HOME。 尝试通过保留JAVA_HOME将其从“路径”中删除。

答案 23 :(得分:0)

我已经下载了tools.jar,然后将其复制到错误消息路径中。

C:\ Program Files \ Java \ jdk-11.0.1 \ bin>在此处粘贴tools.jar

之后,我重新启动了Spring Tool Suit 4,一切正常。 当我尝试解决该问题时,我做了新的环境变量: 控制面板/系统/高级/环境变量/新 名称:JAVA_HOME 值:C:\ Program Files \ Java \ jdk-11.0.1 但是我不知道这是必要的。

答案 24 :(得分:0)

这是Windows的解决方案:在计算机>高级系统设置>高级>环境变量... 中,将其添加到系统变量

enter image description here

答案 25 :(得分:0)

Expected to find it in C:\Program Files\Java\jre6\lib\tools.jar

如果您已经安装了jdk,那么

..Java/jdkx.x.x

文件夹必须存在于那里,以便停止并提供完整的路径,如

C:\Program Files\Java\jdk1.6.0\lib\tools.jar

答案 26 :(得分:0)

我也遇到了同样的错误。 将Java_Home路径设置为C:\ Program Files \ Java \ jdk1.8.0_121后,将其删除。 在系统路径变量中定义了%JAVA_HOME%\ bin之后,请确保路径中没有包含bin,并且在jdk1.8.0_121之后没有斜杠。

答案 27 :(得分:0)

对我而言:我下载了旧版本的Java 1.7

我实际上在安装1.7版本之后从C:/ program files X86 / Java BUT设置了我的JAVA_HOME我在程序文件/ Java中有另一个Java。此刻我在这里找到了tools.jar。然后我改变了这条新路径并开始工作

答案 28 :(得分:0)

解决这个问题我只是将tools.jar文件从C:\ Program Files \ Java \ jre1.8.0_112 \ lib复制到C:\ Program Files \ Java \ jdk1.8.0_112 \ lib,这样我就有了两个tools.jar文件而不是一个,问题就消失了。

答案 29 :(得分:0)

  • 右键单击您的ant文件
  • 转到“运行方式”,然后点击“Ant Build ...”
  • 转到“JRE”标签
  • 选择JDK而不是JRE

答案 30 :(得分:0)

确保正确设置了类路径并指向已安装的JDK的正确版本。另外,您使用的是Open JDK吗?在我尝试从打开JDK转移到Suns JDK之前,我遇到过这个问题。 This是如何修复该问题的一个示例。

答案 31 :(得分:0)

maven-compiler-plugin使用jdk,而不是jre,    tools.jar位于C:\ Program Files \ Java \ jdk1.6.0 \ lib \ tools.jar中 你必须使用jdk配置项目JRE System Libary,而不是jar。这是最简单的解决方案。

答案 32 :(得分:-1)

我最近解决了tool.jar文件错误。我正在使用日食的氧气。它完美而轻松地工作。在您的系统上重复这些步骤,

  1. 根据您的jre jdk版本下载tool.jar文件。让我们假设tool.jar文件是1.8.0.tool.jar

  2. 在下载1.8 .0之后,tool.jar文件重命名为tool.jar

  3. 然后转到您的jdk安装文件夹

  4. 然后转到lib文件夹将其打开

  5. 并粘贴到此处

  6. 您将创建此类型路径。 E:\jdk 8\lib\tools.jar