我正在用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
不存在。
答案 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)
安装Java SDK。
添加一个名为 JAVA_HOME 的系统环境变量,其值为JDK location。
转到“控制面板”\“系统”和“安全\系统”。高级系统设置,环境变量,系统变量,新...示例:
变量名称: JAVA_HOME
变量值: C:\ Program Files \ Java \ jdk1.7.0_21
关闭/重新打开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或set
或setx
命令都没有关系,只要在调用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)
答案 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)
答案 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文件错误。我正在使用日食的氧气。它完美而轻松地工作。在您的系统上重复这些步骤,
根据您的jre jdk版本下载tool.jar文件。让我们假设tool.jar文件是1.8.0.tool.jar
在下载1.8 .0之后,tool.jar文件重命名为tool.jar
然后转到您的jdk安装文件夹
然后转到lib文件夹将其打开
并粘贴到此处
您将创建此类型路径。 E:\jdk 8\lib\tools.jar