我在winxp下用eclipse build lumaqq2005时,碰到这样的问题:Buildfile: D:\lumaqq_2005\jql_protocol_2005\build.xml
setupDir:
releaseBuild:
    [javac] Compiling 161 source files to D:\lumaqq_2005\jql_protocol_2005\build
    [javac] D:\lumaqq_2005\jql_protocol_2005\src\edu\tsinghua\lumaqq\qq\Crypter.java:1: 非法字符: \65279
    [javac] 锘?/*
    [javac] ^
    [javac] D:\lumaqq_2005\jql_protocol_2005\src\edu\tsinghua\lumaqq\qq\QQ.java:1: 非法字符: \65279
    [javac] 锘?/*
    [javac] ^
。  \src\edu\tsinghua\lumaqq\qq\packets\out\ClusterGetMemberInfoPacket.java:1: 非法字符: \65279
    [javac] 锘?/*
    [javac] ^
    [javac] 100 错误BUILD FAILED
D:\lumaqq_2005\jql_protocol_2005\build.xml:24: Compile failed; see the compiler error output for details.Total time: 8 seconds
不知各位是否也碰到类似的问题呢?  我已将eclipse设为utf8的编码了,开发环境是eclipse 3.2m5 + jdk1.5这个问题困惑我好几天了,那位朋友能告诉我解决办法嘛?
谢谢

解决方案 »

  1.   

    在设为UTF-8之前出现的问题还是在UTF-8之后出现的问题?
      

  2.   

    我也出现这个问题,我用的UltraEdit-32,保存UTF8的时候,所有中文字符都会报错。
    保存ASC II就没有问题了。
    我是JDK1.5和UltraEdit-32 12.00+3
      

  3.   

    没用过eclipse build lumaqq2005build.xml这个文件是怎么得来的?
      

  4.   

    build.xml应该没问题
    下面是build.xml的代码:<?xml version="1.0" encoding="UTF-8"?><!-- Jader Ant Build File -->
    <project name="jql_protocol" default="releaseBuild" basedir=".">
    <tstamp>
    <format property="touch.day" pattern="yyyyMMdd"/>
    </tstamp>
    <property name="src" value="./src"/>
    <property name="build" value="./build"/>
    <property name="lib" value="./lib"/>
    <property name="temp" value="./temp"/>
        <property name="project_name"   value="jql_protocol"/>
        <property name="jar"            value="${project_name}-${touch.day}.jar"/>
        <property name="mainclass"      value="edu.tsinghua.lumaqq.qq.QQ"/>

    <!-- initialization -->
    <target name="setupDir">
    <mkdir dir="${build}"/>
    <mkdir dir="${temp}"/>
    </target>

    <!-- release compile -->
    <target name="releaseBuild" depends="setupDir">
    <javac srcdir="${src}" destdir="${build}" debug="off" deprecation="on" optimize="on" extdirs="${lib}" encoding="UTF-8"/>
    </target>

    <!-- debug compile -->
    <target name="debugBuild" depends="setupDir">
    <javac srcdir="${src}" destdir="${build}" debug="on" encoding="UTF-8" deprecation="on" extdirs="${lib}"/>
    </target>

    <!-- clean -->
    <target name="clean">
    <delete dir="${temp}" includeEmptyDirs="true"/>
    <!-- <delete dir="${build}" includeEmptyDirs="true"/> -->
    </target>

    <!-- make lumaqq.jar -->
        <target name="jar" depends="releaseBuild">
         <copy includeemptydirs="false" todir="${build}">
         <fileset dir="${src}" excludes="**/*.MF,**/*.dtd,**/*.java"/>
         </copy>
            <jar jarfile="${temp}/${jar}" 
             basedir="${build}"
             manifest="${src}/META-INF/MANIFEST.MF">
            </jar>
        </target>
    </project>
      

  5.   

    我是build releaseBuild 的target直接用ant也有同样的问题
      

  6.   

    哦,跟build.xml没关系。代码是你自己写的还是从网上下的?看意思是代码文件的问题,还都在第一行。单个文件编译有问题吗?
      

  7.   

    我研究了一下 应该是文件是utf8的,在文件头有一特殊标志代码是网上下的 是opensource,就是lumaQQ
      

  8.   

    src\edu\tsinghua\lumaqq\qq\Crypter.java
    src\edu\tsinghua\lumaqq\qq\QQ.java
    src\edu\tsinghua\lumaqq\qq\packets\out\ClusterGetMemberInfoPacket.java这些文件都是UTF-8的吗?
      

  9.   

    都是utf8格式的文件你们碰过utf8编码的java文件不能编译的嘛?
      

  10.   

    我在编译参数中加了encoding="UTF-8"  应该没问题亚。还一个可能情况是:这个project可能是在linux下做的 我现在在win下build  这样会有问题嘛?有谁在win下 build过linux的文件?
      

  11.   

    UTF8文件格式好像有两种,一种是在第一个位置会多写一个标志位表示是UTF8编码的,还有一种是没有这个标志位的。用WINXP自带的记事本打开都是正常的。如果没有标志位的UTF8文件,打开有时会出来乱码。(以上只是根据自己实践)
    你那个情况就是因为前面多了一个标志位,用editplus之类打开看看就知道了,第一个位置多了一个字符。
      

  12.   

    我知道多了字符,现在的问题是如果多了字符,java就不能编译嘛?