javac编译时出现“非法字符:\65279”的解决方法

一般用UE或记事本编辑过的UTF-8的文件头会加入BOM标识,该标识由3个char组成。在UTF-8的标准里该BOM标识是可有可无的,Sun 的javac 在编译带有BOM的UTF-8的格式的文件时会出现“非法字符:\65279”的错误,但是用Eclipse进行编译却没有问题,原因在于Eclipse使用的是自己的JDT,而非javac,关于JDT的描述可以到eclipse的官网上去查看。 
出现这种情况时,有两种解决方法: 
a) 利用UE、Editplus等文本编辑器重新保存文件为不带BOM的UTF-8格式 
b) 可使用eclipse自带的编译器进行编译 
<!–在ant中添加property,使用eclipse jdt compiler编译–> 
<property name=”build.compiler” value=”org.eclipse.jdt.core.JDTCompilerAdapter” /> 
相关jar包,在eclipse安装文件plugins目录下:org.eclipse.jdt.core_xxx.jar,xxx为版本号 
建议适用a)

<javac srcdir=”${src.dir}” destdir=”${build.dir.build}” target=”1.6″ encoding=”UTF-8″  fork=”true” 
  classpathref=”lib.dir” debug=”${java.debug}” deprecation=”false” optimize=”true”>
   <compilerarg line=”-source 1.6″/>   
   <include name=”**/*.java” />   
  </javac>

此条目发表在JAVA SE分类目录,贴了, , , 标签。将固定链接加入收藏夹。