无法定位tools.jar文件。期望在C:\Program Files\Java\jre6\lib\tools.jar中找到它。

19

当我尝试运行以下命令时,出现错误:

$ ant -Dsdk.dir=/opt/google/appengine-java-sdk runserver -Dserver.host=192.168.1.10

以下是错误信息:

"未能找到tools.jar。应在C:\Program Files\Java\jre6\lib\tools.jar中找到它。"

我已经将jdk路径放在JAVA_HOME变量中,路径为C:\PROGRA~1\Java\jdk1.6.0_25,因为我的jdk位置是C:\Program Files(x86)\Java\jdk1.6.0_25

问题出在哪里?请帮忙解决。谢谢。

当我尝试运行命令ant -diagnostics时,我得到了:

java.home : C:\Program Files\Java\jre6

你知道那个路径中“li”和“b”之间的空格字符吗?我非常怀疑它应该在那里 ;) - posdef
那可能只是一个打字错误。 - AurA
1
JRE 没有 tools.jar。从路径来看,似乎 ant 仍然加载的是 JRE 而不是 JDK。 - Peter Knego
2
我该如何加载JDK? - user1767260
2个回答

23

您应该尝试在 PATH 环境变量的开头添加 %JAVA_HOME%\bin(假设您使用的是 Windows 操作系统)。

正如 Peter Knego 所评论的那样,tools.jar 存在于 JDK 而非 JRE 中,因此您必须确保 JAVA_HOME 指向您的 JDK 目录。


1
将%JAVA_HOME%\bin放在路径末尾,因此将其添加到PATH环境变量的开头。它有效了!但是有什么区别吗? - StackOverFlow
2
当操作系统尝试定位可执行文件时,它将按照PATH中列出的顺序尝试所有位置。因此,如果您真的希望找到某个文件,请将其放在开头,以防在其他位置也找到同名的可执行文件。这可能是导致您问题的原因:要么在现有的PATH位置之一中可以找到另一个java可执行文件,要么您在中间某个地方混淆了PATH语法,使得PATH的最后一部分无法使用。至少这是最可能的原因。 - Patrice M.
1
如果你想要加载tools.jar,路径的开头应该是%JAVA_HOME%\lib。 - Martin Capodici

2
你可能正在构建一个项目,该项目在根目录下有一个名为local.properties的旧文件。其中有一个sdk.dir属性,它指向错误的位置。使用编辑器打开该文件并进行更正。
此外,你的命令行看起来有些可疑。在那里,你使用了一些Unix路径指定sdk位置,而从你的其余消息中看来,你正在使用Windows。确保该属性与你的sdk位置匹配。实际上可能根本不需要这个属性。

命令是使用标准的Java App Engine为Google Cloud Messaging设置服务器,我正在Windows上工作。 - user1767260
你正在本地还是服务器上构建项目? - Audrius Meškauskas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接