无法findtools.jar

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

我有这个错误:

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文件不存在。

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

如果这个问题对任何人来说都是一个问题,我对之前的答案有一点澄清。 我只用安装了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时,它抱怨没有findjre7子目录下的tools.jar。 直到我set "JAVA_HOME=C:\Program Files\Java\jdk1.7.0_04"为错误消失。

  1. 安装Java SDK 。

  2. 使用JDK位置的值添加名为JAVA_HOME的系统环境variables。
    转到控制面板\系统和安全\系统。 高级系统设置,环境variables,系统variables,新build…示例:
    variables名称: JAVA_HOME
    variables值: C:\ Program Files \ Java \ jdk1.7.0_21

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

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

将您的JAVA_HOME环境variables设置为C:\Program Files\Java\jdk1.7.0_02

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

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

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

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

它应该是这样的:

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

不要花太多时间去寻找tools.jar 。 如果你有这样的错误,不要不高兴。

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

你应该看到预期的结果。

转到您安装Java的jdkpath

例如在我的PC JDK安装在下面的path

“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”

我在linux机器上遇到同样的问题。 起初我非常沮丧,因为我已经安装了JDK和JRE。 我同时使用1.6,1.7和1.8版本,而且我已经使用了各种替代方法来正确设置一切。

这个问题相当愚蠢的解决,但反直觉。 当我使用正确的JDK时,我注意到了jar maven所抱怨的工具的path – 它期望它成为

 $JAVA_HOME\..\lib\tools.jar 

$JAVA_HOMEvariables直接指向我的jdk文件夹( /usr/local/java ,它也是正确的$PATH条目和替代的sym链接)。 它实际上searchjava目录之外lib文件夹,因为:

 $JAVA_HOME\..\lib\tools.jar 

将解决

 /usr/local/lib/tools.jar 

这不是一个有效的位置。

为了解决这个问题, $JAVA_HOMEvariables应该指向这个位置/usr/local/java/jre (假设JDKpath是/usr/local/java ) – 实际上JDK安装目录中有jre文件夹,与每个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。 请记住,操作系统的select仍然应该参考JDK。

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

Ant仍然试图在C:\Program Files\Java\jre6\lib文件夹中findtools.jar
我已经通过添加JAVACMD环境variables并将其path设置为jdk文件夹中的java.exe来修复它。
在我的情况下是C:\Program Files\Java\jdk1.6.0_45\bin\java.exe

在eclipse窗口>首选项> Java>已安装的JRE中,我将目录指向了jdk 1.7中的jre目录,我为我工作的文件如C:\ Program Files \ Java \ jdk1.7.0_71 \ jre

我的JDK_path( C:\Program Files\Java\jdk1.7.0_79 )在我的JAVA_HOME ,也是我的PATH的JDK_path \ bin。 但是,我的ant仍然使用JRE而不是JDK。

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

确保%JAVA_HOME%和%JAVA_HOME%/ binpath都添加到PATHvariables中。

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

确保您的IDE可以按照devise和打算的方式find这些jar子。

它已经在Windows操作系统中通过设置JAVA_HOMEvariables在运行之前解决了,如下所示:

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

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

如果你已经安装了jdk的话

..Java/jdkx.xx

文件夹必须在那里存在,所以在失速,并给予完整的path

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

确保您的类path设置正确,并指向您已安装的JDK的正确版本。 另外,你使用Open JDK吗? 之前我曾经试过从开放的JDK转移到Sun JDK。 这是如何解决这个问题的一个例子。

tools.jar位于C:\ Program Files \ Java \ jdk1.6.0 \ lib \ tools.jar中,您必须使用jdkconfiguration项目JRE System Libary,而不是jar。 这是最简单的解决scheme。

你可能在Ubuntu上遇到类似的问题:

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

问题是没有正确设置的JAVA_HOME。

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

 sudo apt-get install openjdk-8-jdk openjdk-8-jre export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 
  • 右键单击你的ant文件
  • 转到“运行方式”,然后点击“Ant Build …”
  • 转到“JRE”选项卡
  • select一个JDK而不是JRE

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

对我来说有什么用:我下载了旧版本的Java 1.7

我实际上从C:/程序文件X86 / Java设置我的JAVA_HOME,但我安装了1.7版后,我有另一个Java程序文件/ Java。 在这个时候,我在这里find了tools.jar。 然后,我改变了这个新的道路,它的工作

我也面临同样的错误。 将Java_Homepath设置为C:\ Program Files \ Java \ jdk1.8.0_121后,将其删除。 在pathvariables中定义%JAVA_HOME%\ bin之后,请确保path中不包含bin,jdk1.8.0_121后面没有斜线。