Ant脚本无法找到javac编译器

时间:2013-06-02 18:37:37

标签: eclipse ant environment-variables javac

我想使用Ant在Eclipse中构建我的项目。运行XML脚本时,出现以下错误:

BUILD FAILED
C:\thesis\100GreatP\eclipse_ws\test\build.xml:82: 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 "C:\Program Files\Java\jre7"

它说它无法搜索javac编译器并且还说它当前设置为C:\Program Files\Java\jre7,但事实并非如此。在环境变量中,我也定义了JAVA_HOME=C:\Program Files\Java\jdk1.7.0_21\bin;PATH=C:\Program Files\Java\jdk1.7.0_21\bin;。我的CLASSPATH变量定义如下 - CLASSPATH=C:\Program Files\Java\jre7\lib;。还有什么想法会导致这种错误吗?感谢。

3 个答案:

答案 0 :(得分:2)

您是否检查了ant -diagnostics告诉您JAVA_HOME的哪些内容?

您的JAVA_HOME可能也不正确;它不应该是C:\Program Files\Java\jdk1.7.0_21\bin,最好是C:\Program Files\Java\jdk1.7.0_21

答案 1 :(得分:1)

如果你去你的eclipse偏好,你可以看到你的eclipse蚂蚁使用哪个jdk:Window-> Preferences-> Ant-> Runtime-> Classpath-> Global Entries。

签入"全球参赛作品" tools.jar的路径。如果你想使用另一个javac,只需指向另一个tools.jar,使用" Add External Jar"选项。

tools.jar通常可以在/ lib目录下的任何jdk中找到。

按照外观顺序定义的第一个tools.jar将由你的eclipse蚂蚁使用。

答案 2 :(得分:0)

我在两个不同版本的Eclipse中遇到了同样的错误。

第一次使用开普勒

我使用Eclipse / Kepler遇到了这个问题。最初我发现我没有安装JDK;我推断Eclipse必须有一个编译器,所以我应该能够在没有JDK的情况下做到这一点。

果然 - this Eclipse Wiki FAQ指示我将以下内容添加到我的Ant构建文件中:

<property name="build.compiler" 
   value="org.eclipse.jdt.core.JDTCompilerAdapter"/>

我对Generics的使用抱怨,所以我发现我必须再添加两行 - 这才是最终起作用的:

<property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/>
<property name="ant.build.javac.source" value="1.6"/>
<property name="ant.build.javac.target" value="1.6"/>

第二次使用伽利略

上面的解决方案在Eclipse Galileo中对我不起作用。相反,我做了以下内容以推出MichalB的解决方案(并且有效):

  1. 确保我安装了JDK!
  2. 确保我为JAVA_HOME选择的值是上面的目录 bin文件夹的路径 - 在我的情况下是C:\Program Files (x86)\Java\jdk1.6.0_16
  3. 通过右键单击This PC(我有Win8.1),选择Properties,点击Advanced并设置System,确保我设置环境变量JAVA_HOME }环境变量JAVA_HOME到该值。