2013-06-02 50 views
0

我想使用Ant在Eclipse中构建我的项目。当运行XML脚本,我得到以下错误:Ant脚本未能找到javac编译器

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;。任何想法还有什么会导致这种错误?谢谢。

回答

1

你检查了什么ant -diagnostics告诉你关于你的JAVA_HOME

也许你的JAVA_HOME也是不正确的;它不应该是C:\Program Files\Java\jdk1.7.0_21\bin但更好的是C:\Program Files\Java\jdk1.7.0_21

0

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

第一次与开普勒

我遇到了这个使用Eclipse /开普勒。最初我发现我没有安装JDK;我推断Eclipse必须有一个编译器,所以我应该能够在没有JDK的情况下执行此操作。

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

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

我得到了泛型的用途投诉,所以我发现我不得不添加两行 - 这是最后什么工作:

<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伽利略为我工作。相反,我做了以下推出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。
1

如果您进入eclipse首选项,您可以看到eclipse ant使用哪个jdk:Window-> Preferences-> Ant-> Runtime-> Classpath-> Global Entries。

签入“全局条目”tools.jar的路径。如果你想使用另一个javac,只需使用“Add External Jar”选项指向另一个tools.jar即可。

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

按照外观顺序定义的第一个tools.jar将被eclipse ant使用。

相关问题