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

自从我更新到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或者有一个“;” 在路径或类似的东西。 这些似乎都不适用于我的情况。

有什么建议么?

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

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

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


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

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

什么对我有用:

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

在此处输入图像描述

解决方案“ Had to copy C:\Program Files\Java\jdk1.6.0_10\lib\tools.jar to C:\Program Files\Java\jre6\lib\ext ”非常有用并且对我有用。

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

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