21

自从我更新到 java 1.7.0_52(或大约)后,我无法运行我的 Ant build.xml。多年来,我一直在我的 Windows 7 笔记本电脑上通过 Eclipse 本地运行它 - 但是有了这个最新的 jave jdk 更新,有些不同(?)。

BUILD FAILED
C:\workspace\WaterAspectsModel3\build.xml:329: Unable to find a javac compiler;
com.sun.tools.javac.Main is not on the classpath.
Perhaps JAVA_HOME does not point to the JDK.
It is currently set to "D:\Morten\Java\jdk1.7.0_52"

这是我的jdk!所以 JAVA_HOME 指向一个 jdk(从错误消息中也可以清楚地看到)。像往常一样,我的路径中有带有 bin 文件夹的 JAVA_HOME。我已经配置了 Eclipse - 外部工具配置 - 使用指向相同 D:\Morten\Java\jdk1.7.0_52 的 JRE(通过“单独的 JRE”设置)。而且我尝试了许多其他配置 - 都没有运气。

我一直在这里和其他地方阅读列表中的大量答案,并认为我已经尝试了所有建议。大多数似乎是JAVA_HOME实际上指向jre并且只需要更正为jdk或者有一个“;”的情况。在路径或类似的东西。这些似乎都不适用于我的情况。

有什么建议么?

4

6 回答 6

40

通过 Eclipse 运行 ANT 时,我收到了相同的消息。

什么对我有用:

  1. 在 Eclipse 中,访问菜单:“Window -> Preferences”;
  2. 在树上访问“Ant -> Runtime”;
  3. 访问类路径选项卡;
  4. 展开“全局条目”项;
  5. 在全局条目中,路径tools.jar是错误的。它指向的是旧版本的 Java;
  6. 我删除了错误的条目并使用“添加外部罐子”按钮添加了正确的条目。有效。

在此处输入图像描述

于 2014-10-07T20:29:56.343 回答
11

Had to copy C:\Program Files\Java\jdk1.6.0_10\lib\tools.jar to C:\Program Files\Java\jre6\lib\ext来自这里的解决方案“ ”对我很有帮助并且对我有用。

于 2014-10-16T10:15:03.890 回答
7

真正的消息是 Ant 找不到com.sun.tools.javac.Main.

其中,再加上最新的“Sun”(Oracle)JDK 是 1.7.0_13(或者可能是 _14,但绝对不是您的安装目录指示的“_52”)这一事实,让我认为您没有使用发行版蚂蚁认得。您可以通过运行jar tvf $JAVA_HOME/lib/tools.jar并查找该类来验证这一点。

Ant 手册讨论了使用不同编译器的方法。由于我只使用过“Sun”编译器,恐怕无法给你任何指点。


编辑:您也可以尝试fork="yes"在构建文件中进行设置。这应该运行编译器可执行文件,而不是尝试调用编译器类。

于 2013-02-26T20:20:49.103 回答
0

尝试添加JAVA_HOME\bin到您的env PATH.

于 2013-02-26T20:09:08.173 回答
0

将 JAVA_HOME 添加到 Eclipse-Preferences-Java-Build Path-Classpath 变量。

于 2014-11-19T09:42:29.953 回答
0

对不起,出土了,

我有同样的问题,我的解决方案不需要对环境变量进行任何修改,并且适用于找不到 tools.jar 的最新 JDK。

只需进入 ant run 按钮旁边的小向下箭头然后单击“配置外部工具”然后在 JRE 选项卡中选择您计算机上安装的 JDK,而不是 JRE,如果选择的 JDK 不是同一个 JDK/JRE,则没有问题就像在你的项目中一样。

现在应该可以工作了。

于 2020-03-22T17:01:21.067 回答