使用Ant编译遇到的问题
1、ant安装、配置后报错:Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/tools/ant/launch/Launcher : Unsupported major.minor version 52.0 ……
解决方案:ant下载最新版本1.10.1应该是1.8版本java编译生成。降低重新下载ant 1.7.1版本,执行ant命令,运行正常。
2、ANT编译错误: 编码utf8的不可映射字符
解决方案:
使用eclispse的JDK进行编译。修改build.xml文件,加上如下属性:
<project basedir="." default="antwar_fjwan" name="carzone_ds">
<property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/>
同时javac添加jdk版本参数
<javac nowarn="on" srcdir="${basedir}\src" destdir="${basedir}\WebContent\WEB-INF\classes" encoding="utf-8" source="1.7" target="1.7" includeantruntime="false">
ant一下,会报找不到org.eclipse.jdt.core.JDTCompilerAdapter
将eclipse/plugins目录下把org.eclipse.jdt.*文件拷到ant/lib目录下。以及org.eclispe.jdt.core_…….jar里面的jdtCompilerAdapter.jar拷到ant/lib目录下。然后重新编译,一切OK。
3、在上一个问题中我的jdtCompilerAdapter.jar是从网上直接下载的,编译时有些文件会提示编译错误:Cannot switch on a value of type String. Only convertible int values or enum constants are permitted。
解决方案:由于Ant编译时的JDK版本为1.6,但是现在应该使用1.7编译导致的。将eclips/plugins目录下org.eclispe.jdt.core_…….jar解压取里面的jdtCompilerAdapter.jar拷到ant/lib目录下。然后重新编译,一切OK。