在使用eclipse的ant打包时,遇到一个问题,执行下面的javac编译时,死活编译不了:
optimize="false" failοnerrοr="true" includeantruntime="false" encoding="gbk">
报错如下:
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”,果不其然,加上之后编译就不报错了。
虽不知是何因,先记录下,待日后查证。