我想使用Ant在Eclipse中构建我的项目。当运行XML脚本时,我得到以下错误:
BUILD FAILED
C:thesis100GreatPeclipse_wstestbuild.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 FilesJavajre7"
它说它搜索javac编译器失败,还说它当前设置为C:Program FilesJavajre7
,但这不是真的。在环境变量中,我也定义了JAVA_HOME=C:Program FilesJavajdk1.7.0_21bin;
和PATH=C:Program FilesJavajdk1.7.0_21bin;
。我的CLASSPATH
变量是这样定义的——CLASSPATH=C:Program FilesJavajre7lib;
。你知道还有什么会导致这种错误吗?谢谢。
你检查过ant -diagnostics
告诉你的JAVA_HOME
吗?
可能你的JAVA_HOME
也不正确;不应该是C:Program FilesJavajdk1.7.0_21bin
,最好是C:Program FilesJavajdk1.7.0_21
你可以看到你的eclipse蚂蚁使用的jdk,如果你去你的eclipse首选项:窗口->首选项->蚂蚁->运行时->Classpath->全局条目。
签入tools.jar的路径"Global Entries"。如果您想使用另一个javac,只需使用"添加外部Jar"选项指向另一个tools.jar。
tools.jar通常可以在/lib目录下的任何jdk中找到。
按外观顺序定义的第一个tools.jar将由eclipse ant使用。
我在两个不同版本的Eclipse中得到了相同的错误。
首次使用开普勒望远镜
我在使用Eclipse/Kepler时遇到了这个问题。最初,我发现我没有安装JDK;我认为Eclipse必须有一个编译器,所以我应该能够在没有JDK的情况下做到这一点。
果然——这个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 Galileo中不适合我。相反,我做了以下事情来推出MichalB的解决方案(并且它有效):
- 确保我已经安装了JDK !
- 确保我为JAVA_HOME选择的值是
bin
文件夹上面的目录的路径——在我的例子中是C:Program Files (x86)Javajdk1.6.0_16
。 - 确保我设置环境变量JAVA_HOME右键点击
This PC
(我有Win8.1),选择Properties
,点击Advanced
,并设置System
环境变量JAVA_HOME为该值。