我正在用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
不存在。
我正在用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
不存在。
Answers:
是的,您已经下载并安装了Java Runtime Environment(JRE)而不是Java Development Kit(JDK)。后者具有tools.jar,java.exe,javac.exe等。
# apt-get install default-jdk
并且错误消失。
JAVA_HOME
设置在的jre
内部jdk
而不是jdk
自身。
万一这仍然是任何人的问题,我会对先前的答案有一些澄清。我在只安装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"
,错误消失了。
安装Java SDK。
添加一个名为JAVA_HOME的系统环境变量,其值为JDK location。
转到控制面板\系统和安全性\系统。高级系统设置,环境变量,系统变量,新建...示例:
变量名称:JAVA_HOME
变量值:C:\ Program Files \ Java \ jdk1.7.0_21
关闭/重新打开CMD窗口,以便新变量在尝试重新运行ant命令之前生效。
PATH
有 /bin
,JAVA_HOME
没有 /bin
我遇到了同样的问题, 复制 C:\Program Files\Java\jdk1.6.0_26\lib\tools.jar
后 C:\Program Files\Java\jre6\lib\ext
对我有用
不,根据您的目录结构,您已经安装了JRE,而不是JDK。有区别。
C:\Program Files\Java\jre6\lib
^^^^
应该是这样的:
C:\Program Files\Java\jdk1.6.0_24
我在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。
您可能在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
正如许多人提到的,看起来您正在寻找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文件夹中。
确保将%JAVA_HOME%和%JAVA_HOME%/ bin路径都添加到PATH变量中。
关于将tools.jar复制到正确位置的所有答案充其量都不是个好主意。
确保您的IDE可以按照设计和预期的方式找到这些jar。
在eclipse窗口>首选项> Java>已安装的JRE中,我将目录指向jdk 1.7中的jre目录,并为我工作了文件,例如C:\ Program Files \ Java \ jdk1.7.0_71 \ jre
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