我正在尝试在eclipse中使用Ant构建一个项目。我右键单击build.xml>运行方式> Ant Build。但是,我收到以下错误:
BUILD FAILED
C:\Users\David\eclipse\test-project\build.xml:26: Class not found: javac1.8
还有一个警告:
compile:
[javac] C:\Users\David\eclipse\test-project\build.xml:26: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
正如我在其他帖子中读到的那样,这可能是由于蚂蚁版本太旧或没有正确设置环境变量,所有信息都是:
C:\>java -version
java version "1.8.0_05"
Java(TM) SE Runtime Environment (build 1.8.0_05-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.5-b02, mixed mode)
C:\>ant -version
Apache Ant(TM) version 1.9.3 compiled on December 23 2013
C:\>echo %JAVA_HOME%
C:\Program Files\Java\jdk1.8.0_05
C:\>echo %JRE_HOME%
C:\Program Files\Java\jre8
编辑: 这是整个build.xml,第26行是javac标记:
<?xml version="1.0"?>
<project name="test-project" default="main" basedir=".">
<!-- Sets variables which can later be used. -->
<!-- The value of a property is accessed via ${} -->
<property name="src.dir" location="src" />
<property name="build.dir" location="bin" />
<property name="dist.dir" location="dist" />
<property name="docs.dir" location="docs" />
<!-- Deletes the existing build, docs and dist directory-->
<target name="clean">
<delete dir="${build.dir}" />
<delete dir="${docs.dir}" />
<delete dir="${dist.dir}" />
</target>
<!-- Creates the build, docs and dist directory-->
<target name="makedir">
<mkdir dir="${build.dir}" />
<mkdir dir="${docs.dir}" />
<mkdir dir="${dist.dir}" />
</target>
<!-- Compiles the java code (including the usage of library for JUnit -->
<target name="compile" depends="clean, makedir">
<javac srcdir="${src.dir}" destdir="${build.dir}">
</javac>
</target>
<!-- Creates Javadoc -->
<target name="docs" depends="compile">
<javadoc packagenames="src" sourcepath="${src.dir}" destdir="${docs.dir}">
<!-- Define which files / directory should get included, we include all -->
<fileset dir="${src.dir}">
<include name="**" />
</fileset>
</javadoc>
</target>
<!--Creates the deployable jar file -->
<target name="jar" depends="compile">
<jar destfile="${dist.dir}\test-project1.jar" basedir="${build.dir}">
<manifest>
<attribute name="Main-Class" value="test.Main" />
</manifest>
</jar>
</target>
<target name="main" depends="compile, jar, docs">
<description>Main target</description>
</target>
</project>
答案 0 :(得分:31)
与您的Eclipse版本捆绑在一起的Ant版本与Java 1.8不兼容。
转到Ant download page,并将适当的最新版本解压缩到您的文件系统中。
在Eclipse中,转到Window > Preferences > Ant > Runtime
,单击Ant Home...
按钮,然后选择将新下载的Ant解压缩到的位置。
答案 1 :(得分:6)
使其更加清晰。
1&gt;将JAVA_HOME,JRE_HOME和Update Ant设置为1.9
2&gt; Over build.xml右键单击=&gt;运行为(这需要配置)==&gt;现在在此编辑配置和启动弹出窗口
选择Main选项卡,然后选择第三个表单字段&#34; Arguments&#34; 添加:
-Dbuild.compiler=javac1.7
3&GT;在build.xml中添加includeantruntime =&#34; false&#34;
<javac srcdir="${src}" destdir="${bin}" debug="true" encoding="ISO-8859-1" includeantruntime="false">
<classpath refid="my.classpath"/>
</javac>
它应该在没有任何消息的情况下编译
答案 2 :(得分:1)
先生。 studro是对的。我刚刚在Ubuntu 14.04上确认了一个例子
sudo apt-get install ant
ant -version
Apache Ant (TM) Version 1.9.3 compiled on April August 2014
在eclipse中完美运行,只需按照studro先生描述的步骤,用“/ usr / share / ant”配置日食中的“Ant Home”。
问候,Stéphane。
答案 3 :(得分:1)
我认为,你所看到的是Ant Bug 53347(见https://issues.apache.org/bugzilla/show_bug.cgi?id=53347)。
如果是这样,请尝试以下解决方法:
将属性“build.compiler”设置为有意义的值,例如“javac1.7”或“javac1.3”。
将构建脚本的“javac”元素的“compiler”属性设置为以上任一值。 有关所有可能的值及其含义,请参阅http://ant.apache.org/manual/Tasks/javac.html
答案 4 :(得分:0)
确保源文件位于“ProjectDirectory / src”中。
答案 5 :(得分:-1)
在提出这个问题之前,我已经做了一些广泛的谷歌搜索,但继续我找到了解决方案here: 这个问题似乎只在使用JDK 1.8时出现,因此使用JDK 1.7代替了解决问题。需要将以下行添加到eclipse.ini:
-vm "path-to-jdk-1.7\bin\javaw.exe"