无法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"
为错误消失。
-
安装Java SDK 。
-
使用JDK位置的值添加名为JAVA_HOME的系统环境variables。
转到控制面板\系统和安全\系统。 高级系统设置,环境variables,系统variables,新build…示例:
variables名称: JAVA_HOME
variables值: C:\ Program Files \ Java \ jdk1.7.0_21 -
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_HOME
variables直接指向我的jdk
文件夹( /usr/local/java
,它也是正确的$PATH
条目和替代的sym链接)。 它实际上searchjava目录之外的lib
文件夹,因为:
$JAVA_HOME\..\lib\tools.jar
将解决
/usr/local/lib/tools.jar
这不是一个有效的位置。
为了解决这个问题, $JAVA_HOME
variables应该指向这个位置/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。
问题是我在PATH
variables中的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后面没有斜线。