Ant“JAVA_HOME不指向JDK” - 但确实如此

时间:2013-02-26 20:06:53

标签: eclipse ant java

自从我更新到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 - 外部工具配置 - JRE指向相同的D:\ Morten \ Java \ jdk1.7.0_52(通过“Separate JRE”设置)。而且我已经尝试了许多其他配置 - 都没有运气。

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

有什么建议吗?

6 个答案:

答案 0 :(得分:31)

在通过Eclipse运行ANT时,我收到了同样的信息。

什么对我有用:

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

答案 1 :(得分:9)

解决方案 来自here的“Had to copy C:\Program Files\Java\jdk1.6.0_10\lib\tools.jar to C:\Program Files\Java\jre6\lib\ext”非常有帮助并为我工作。

答案 2 :(得分:5)

真正的信息是Ant无法找到com.sun.tools.javac.Main

其中,以及最新的“Sun”(Oracle)JDK是1.7.0_13(或者可能是_14,但绝对不是你的安装目录所指的“_52”)的事实,让我觉得你不是使用Ant识别的分发。您可以通过运行jar tvf $JAVA_HOME/lib/tools.jar并查找该类来验证这一点。

Ant Manual讨论了如何使用不同的编译器。由于我只使用了“Sun”编译器,我担心我无法给你任何指示。


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

答案 3 :(得分:0)

尝试将JAVA_HOME\bin添加到env PATH

答案 4 :(得分:0)

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

答案 5 :(得分:0)

很抱歉发掘

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

只需进入蚂蚁运行按钮旁边的小向下箭头 然后点击“配置外部工具” 然后在“ JRE”选项卡中 选择您计算机上安装的JDK,而不是JRE,如果所选JDK与项目中的JDK / JRE不同,则没有问题。

现在应该可以工作了。