Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 尝试生成文件时出现Ant错误,找不到tools.jar?_Java_Deployment_Ant_Tools.jar - Fatal编程技术网

Java 尝试生成文件时出现Ant错误,找不到tools.jar?

Java 尝试生成文件时出现Ant错误,找不到tools.jar?,java,deployment,ant,tools.jar,Java,Deployment,Ant,Tools.jar,当我运行ant时,它会说: Unable to locate tools.jar. Expected to find it in C:\Program Files\Java\jre6\lib\tools.jar Buildfile: build.xml does not exist! Build failed 我可以使用什么包下载文件required>C:\ProgramFiles\Java\jre6\lib\tools.jar 我刚下载了这个: jre-6u19-windows-i586-s

当我运行ant时,它会说:

Unable to locate tools.jar. Expected to find it in C:\Program Files\Java\jre6\lib\tools.jar
Buildfile: build.xml does not exist!
Build failed
我可以使用什么包下载文件required>C:\ProgramFiles\Java\jre6\lib\tools.jar

我刚下载了这个:

jre-6u19-windows-i586-s.exe

但不幸的是,它似乎不在上面…

你需要这样做


将JAVA_HOME设置为指向JDK。

JAVA有两个版本:JRE&SDK过去被称为JDK

JRE除了不包含编译器外,还不包含JDK工具中可用的所有库。jar就是其中之一


当您在下载Java时,请确保选择JDK版本并安装它。如果您同时拥有JDK和JRE,请确保ANT正在使用JDK,您可以检查JAVA_HOME环境变量,如果您使用javac-version,您应该在命令行上获得版本说明。

我遇到了同样的问题,发布的解决方案都没有帮助。最后,我发现我做错了什么。当我安装Java JDK时,它问我要在哪里直接安装。我把目录改成了我想要代码的地方。然后它要求提供一个可以安装运行时环境的目录,我选择了与安装JDK相同的目录。它重写了我的lib文件夹并删除了tools.jar。请确保在安装过程中使用不同的文件夹。我为JDK使用了自定义文件夹,为RE使用了默认文件夹,一切正常。

只需将java_home属性设置为java home,例如:C:\Program Files\java\jdk1.7.0_25目录。 关闭命令提示符并重新打开它。 然后将解决与tools.jar相关的错误。
对于未找到的第二个onebuild.xml,您应该确保您的命令行也位于build.xml文件所在的目录中。

使用本页和另一页答案中的建议,最终解决方案如下:

添加一个ANT_HOME环境变量,该变量指向Apache ANT目录位置的根目录。不是bin子目录

添加指向JAVA JDK或SDK目录位置的根目录的JAVA_HOME环境变量。不是你的JRE,也不是bin sub dir

附加%ANT\u HOME%\bin;%JAVA\u HOME%\bin到PATH环境变量

确保关闭在上述更改之前打开的所有命令窗口。只有在更改后打开的命令窗口才会更新环境变量


有时在安装JDK时,可能会出现dll丢失错误。因此,它不会将tools.jar文件复制到java文件夹中。因此,请将JDK重新安装到其他位置,如果成功,您将看到tools.jar文件。

我发现,即使我的路径设置为JDK,ant也希望从jre文件夹中获得tools.jar。所以只需将tools.jar文件夹从JDK复制粘贴到jre即可

我也遇到了同样的问题,但我卸载了java的所有更新,现在它工作得很好。

您需要从sun的网站下载JDK而不是JRE。JDK包含用于编译代码的二进制文件。JRE只包含执行已编译代码的二进制文件。他在上一个主题中告诉他:@BalusC-我提供了指向JDK的显式链接,这似乎是一个小部件:-这应该可以避免更多错误。@Bozho:是的,我之所以选你是因为直接链接:我在他上一个主题中的答案确实包含了JRE和JDK的下载按钮。它是从J2SDK回到JDK的。是的,看起来Oracle已经理顺了品牌-事实上,我认为新的DL页面可能比旧的Sun页面更清晰如果找不到javac,那么将Java的bin目录添加到路径设置Java_HOME就完全没有必要了。@MPi对我来说是这样的。可能是因为我已经预先安装了JRE。你可能认为这会起作用,但我仍然必须将JDK位置放在路径中。对我来说,我必须更改JAVA_HOME,因为它是批处理文件的一部分。我在原始条目前面放了一个REM,然后将修改后的JAVA_HOME条目放在下面的行中。REM set JAVA_HOME=.\..\tools\JAVA\jre set JAVA_HOME=C:\Progra~1\JAVA\jdk1.6.0\u 37Michael,这确实是必要的。误导性的笼统陈述实际上是不必要的。这是一个非常有用的答案。这个错误对我来说似乎是突然发生的,我检查了类路径,它指向JDK,这与正常情况一样。这个问题一定与Java在前一天提示我安装的一个更新有关,该更新显然修改了JRE,从而从lib路径中删除了tools.jar。我所做的是将tools.jar从JDK/lib复制到JRE/lib,错误消失了是的,我观察到了这一点!虽然这是一个补丁,但它将工作到现在。