无法找到tools.jar


181

我正在用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不存在。


我认为工具属于JDK,而不属于JRE。不是吗 C:\ Program Files \ Java \ jdk1.6.0_24 \ lib
Edwin Dalorzo 2011年

4
顺便说一句,我感到惊讶的是该程序实际上说了它的外观。因此,很少有程序提供此有用的线索。
彼得·弗林

另请参见重复的问题:stackoverflow.com/q/9119479/3328979答案比这里要好。
Arashsoft '16

Answers:


188

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


7
@olidev现在检查此问题,但仍无法停止指出问题!!这怎么可能是您的答案?您已经提到已经安装了jdk和jre。我实际上正面临着类似的问题,并且它仍在继续:-( ..需要知道您是如何工作的吗?
Mercenary

7
将JAVA_HOME和/ bin目录添加到您的路径。您意识到这个答案已经两岁了,对吗?
duffymo

17
在ubuntu中:# apt-get install default-jdk并且错误消失。
哈维·蒙特罗

2
钥匙?JDK。这就是工具。JRE没有。
duffymo 2015年

2
不必要。在我看来,他们可能JAVA_HOME设置在的jre内部jdk而不是jdk自身。
ArtOfWarfare

88

万一这仍然是任何人的问题,我会对先前的答案有一些澄清。我在只安装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",错误消失了。


7
这个。谢谢!(对于那些安装了各种jre / jdk版本的用户)
Daren Thomas

它对我有用..之前我用\ bin也给出了路径..那是问题
John

谢谢,我希望我能给你两个ups!
路加福音

38
  1. 安装Java SDK

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

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


4
JAVA_HOME变量修复了所有问题,非常感谢:)
krinn 2014年

4
PATH /binJAVA_HOME 没有 /bin
丹尼尔·W

1
谢谢,我一直在寻找这个小时!
kcho0

1
在Windows8.1上像魅力一样工作
Umar Abbas

像个迷人的工作!谢谢
Heidi


10

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


10

如果您使用的是Linux,则可以通过在系统上安装java来解决此问题:

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

显然,您可以对Java 8使用'sudo apt-get install openjdk-8-jdk openjdk-8-
jre'

7

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

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

应该是这样的:

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

是的,你是对的!但是如何卸载jre?在此先感谢
olidev

开始>控制面板>软件(或类似软件,具体取决于Win *版本)
肖恩·帕特里克·弗洛伊德

但是没有这样的选项可以删除jre。我刚检查!
olidev 2011年

@Joesy好吧,如果找不到它,只需将其保留,就无需卸载它(恢复磁盘空间除外)。您可以并行安装许多JDK和/或JRE
Sean Patrick Floyd


5

不要花太多时间寻找tools.jar。如果您遇到这样的错误,请不要难过。

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

您应该看到预期的结果。


2
这种方法值得推荐吗?
S_M 2015年

4

我在Linux机器上遇到了同样的问题。起初我很沮丧,因为我已经安装了JDK和JRE。我同时使用1.6版,1.7版和1.8版,并且为了使所有内容都正确设置,我在选择方面也发挥了很多作用。

这个问题解决起来很愚蠢,但却违反直觉。当我使用正确的JDK时,我注意了jar maven抱怨的工具的路径-希望它会

$JAVA_HOME\..\lib\tools.jar

$JAVA_HOME变量直接指向我的jdk文件夹(/usr/local/java这也是正确的$PATH条目和备用符号链接)。实际上,它搜索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。


1
我在Windows中遇到了同样的问题,用你的方式解决了我的问题。
Yigang Wu

我已经尝试了所有这一切,仍然用tools.jar遇到了问题。Randoop值得付出努力吗?意思是它会产生不错的单元测试吗?令人沮丧的是,我的Windows机器上的所有其他Java程序都能正常工作。
史密斯先生

@MrSmith,收到错误时Randoop查找的路径是什么。也许Randoop有自己的env设置,可以告诉它JRE在哪里?另外,更改环境变量后,是否重新打开了shell窗口(如果从shell运行)?
Ivaylo Slavov,

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”


2

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

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


2

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

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

问题出在未正确设置的JAVA_HOME上。

因此,在使用Java8的Ubuntu 14.04 x64上:

sudo apt-get install openjdk-8-jdk openjdk-8-jre
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

2

在Windows操作系统中,通过设置JAVA_HOME变量可以解决此问题,然后按如下所示运行:

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


我不得不强迫这个。Ant 10+正在寻找未知变量中的JDK。我找不到它在哪里获取JDK,但是当我可以在命令行中强制使用JAVA HOME时,它就可以工作。
卡明斯

2

正如许多人提到的,看起来您正在寻找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文件夹中。


1

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

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

确保您的IDE可以按照设计和预期的方式找到这些jar。


1

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


1

我有我的JDK_path(C:\Program Files\Java\jdk1.7.0_79),还有我JAVA_HOME的JDK_path \ binPATH。但是,我的蚂蚁仍然在使用JRE而不是JDK。

问题出C:\ProgramData\Oracle\Java\javapath在我的JDK_path PATH变量之前。我只是将我的JDK_path移到了oracle目录之前,问题就解决了。


1

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


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

0

确保正确设置了类路径,并指向已安装的JDK的正确版本。另外,您是否在使用Open JDK?在尝试从开放式JDK迁移到Suns JDK之后,我遇到了这个问题。 是解决该问题的一个示例。


0

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


0
  • 右键单击您的ant文件
  • 转到“运行方式”,然后单击“蚂蚁建筑...”
  • 转到“ JRE”标签
  • 选择一个JDK而不是一个JRE

0

对我来说有效的是:我下载了旧版本的Java 1.7

在安装1.7版本后,我实际上是从C:/程序文件X86 / Java BUT设置JAVA_HOME的,我在程序文件/ Java中有另一个Java。现在,我在这里找到tools.jar。然后我改变了这个新的道路,它正在工作


0

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


0

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


0

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

在此处输入图片说明


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但是我不知道是这是必要的。


0

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


0

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.