ant使用javac编译时出现的一个问题

来源:互联网 发布:淘宝 东京时光隧道 编辑:程序博客网 时间:2024/05/21 15:45
在使用eclipse的ant打包时,遇到一个问题,执行下面的javac编译时,死活编译不了:

<target name="compile" depends="init" description="编译Java文件"><javac destdir="${build.classes.dir}" source="1.6" debug="true" deprecation="false" optimize="false" failonerror="true" includeantruntime="false" encoding="gbk"><src path="${src.java.dir}" /><classpath refid="master-classpath" /></javac></target>

报错如下:

compile:       [javac] Compiling 40 source files to D:\Java\workspaces\HttpSpring-2.0\build\classes       [javac] D:\Java\workspaces\HttpSpring-2.0\src\com\gcl\bean\HeaderList.java:3: 无法访问 java.util.ArrayList       [javac] 错误的类文件: java\util\ArrayList.class(java\util:ArrayList.class)       [javac] 类文件具有错误的版本 52.0,应为 50.0       [javac] 请删除该文件或确保该文件位于正确的类路径子目录中。       [javac] import java.util.ArrayList;       [javac]           

我使用的是新安装的eclipse-mars版本,本地确实安装有Jdk1.8和jdk1.6两种版本,但是eclipse里面,能找到设置jdk版本的,我全部都已经设置成jdk1.6了,不知道为什么编译就总是报这个错(报错里面的版本52.0即为jdk1.8编译版本,50.0即为jdk1.6编译版本)


在网上搜索两天无果,偶然间,看到一篇帖子介绍ant里面的javac标签,看到里面有一个:

fork: 为true时在外部启用一个新的JDK 编译器进程执行编译。默认值是true,应用在需要配置编译器运行时环境时

顿时觉得,会不会是因为没加这个标签,导致编译时候启动的jdk不是指定的1.6版本?

于是加上fork=“true”,果不其然,加上之后编译就不报错了。

虽不知是何因,先记录下,待日后查证。


0 0