在ant编译时,有时会提示非法字符错误,而我们看到代码,又看不到什么非法字符,编译不能通过。
解决方法
一般用UE或记事本编辑过的UTF-8的文件头会加入BOM标识,该标识由3个char组成。在UTF-8的标准里该BOM标识是可有可无的,Sun 的Javac 在编译带有BOM的UTF-8的格式的文件时会出现“非法字符:/65279”的错误,但是用Eclipse进行编译却没有问题,原因在于Eclipse 使用的是自己的JDT,而非javac,关于JDT的描述可以到eclipse的官网上去查看。
下载editplus,打开你的java源文件(可以打开多个文件),选择“文档”-“文件编码”-“批量更改文件编码…”选择所有你需要修改的编码的java源文件,选择字符集“UTF-8″记得是UTF-8,而非“utf-8 bom”。点击批量保存按钮。再运行你的ant脚本,此时编译就不会报出“非法字符:/65279”这个错误了。
出现这种情况时,网上提供了两种解决方法: a) 利用UE、Editplus等文本编辑器重新保存文件为不带BOM的UTF-8格式 b) 可使用eclipse自带的编译器进行编译 <!--在ant中添加property,使用eclipse jdt compiler编译--> <property value="org.eclipse.jdt.core.JDTCompilerAdapter" /> 相关jar包,在eclipse安装文件plugins目录下:
org.eclipse.jdt.core_xxx.jar,xxx为版本号 c)用DW关联Notepad++,必要的时间用notepad++里的“转化为utf-8无bom编码格式”