【问题标题】:Unable to locate tools.jar. Expected to find it in C:\Program Files\Java\jre6\li b\tools.jar无法找到 tools.jar。预计在 C:\Program Files\Java\jre6\lib\tools.jar 中找到它
【发布时间】:2013-01-18 08:09:38
【问题描述】:

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

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

这是错误:

“无法找到 tools.jar。预计在 C:\Program 中找到它 文件\Java\jre6\lib\tools.jar"。

我已将 JAVA_HOME 变量中的 jdk 路径指定为 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”之间的空格字符吗?我非常怀疑它应该在那里;)
  • 这可能只是一个错字
  • JRE 没有 tools.jar。从路径来看,ant 似乎仍然加载 JRE 而不是 JDK。
  • 我怎样才能让它加载JDK?

标签: java google-app-engine ant build


【解决方案1】:

您应该尝试在 PATH 环境变量的开头添加 %JAVA_HOME%\bin(当然,给定的语法假定是 Windows)。 正如 Peter Knego 所说,tools.jar 存在于 JDK 中,而不是 JRE 中,因此您必须确保 JAVA_HOME 指向您的 JDK 目录。

【讨论】:

  • %JAVA_HOME%\bin 出现在路径的末尾,因此更改了位置,即添加到 PATH 环境变量的开头。有用!!但有什么区别?
  • 好吧,当操作系统试图定位一个可执行文件时,它会按照列出的顺序尝试 PATH 中列出的所有位置。因此,如果您真的想找到某些东西,请将其放在开头,以防在其他位置也找到同名的可执行文件。这可能是导致您的问题的原因:可以在现有 PATH 位置之一中找到另一个 java 可执行文件,或者您以某种方式在中间某处混淆了 PATH 语法并且 PATH 的最后一部分不可用。至少这是最可能的原因。
  • %JAVA_HOME%\lib 在路径的开头,如果你想加载 tools.jar
【解决方案2】:

您可能正在构建一些项目,该项目在项目根级别具有名为 local.properties 的旧文件。那里有一个sdk.dir 属性,它指向错误。使用编辑器打开该文件并更正。

另外,你的命令行看起来有问题。在那里,您使用一些 Unix 路径指定 sdk 位置,并且从其余的消息看起来您在 Windows 上。确保该属性与您的 sdk 位置匹配。它实际上可能根本不需要。

【讨论】:

  • 命令是使用标准的 App Engine for Java 为 Google Cloud Messaging 设置服务器,我在 Windows 中工作。
  • 你在哪里构建项目,本地还是服务器?
猜你喜欢
  • 2012-05-09
  • 2014-03-26
  • 1970-01-01
  • 2012-02-09
  • 1970-01-01
  • 2020-09-13
  • 2011-08-09
  • 1970-01-01
相关资源
最近更新 更多