比如说src目录下面有两个java源文件,同时还有一个文件夹a,a下面又有java源文件,我试验ant的编译结果是把所有的class文件都放在另一个目录b下面了,如图。 如何才能让编译后的结果是在b目录下面也建立和src目录一样的结构,各文件夹下面的class文件分别对应那边的java文件? 我把相关文件的代码贴出来,各位帮我看看怎么弄,谢谢~~~build.properties文件代码:
[code=INIFile]
source.dir=./src
class.dir=./classes
[/code]
build.xml文件代码:<project name="MyProject" default="compile" basedir=".">    <property file="build.properties" />
    
    <target name="compile" depends="clean" description="编译">
      <mkdir dir="${class.dir}"/>
      <javac srcdir="${source.dir}"
        destdir="${class.dir}"
        classpath=""
          nowarn="true"
          encoding="Windows-31j"
        debug="on" />
    <copy todir="${class.dir}">
      <fileset dir="${class.dir}">
          <include name="**/*.java" />
      </fileset>
    </copy>
  </target>    <!-- 清空 -->
  <target name="clean" >
    <delete dir="${class.dir}"/>
  </target>
    
</project>

解决方案 »

  1.   

    <javac debug="on" deprecation="true" srcdir="${source.dir}" destdir="${class.dir}"
    source="1.4"> </javac>
      

  2.   

    楼上老大的意思是把
    <javac srcdir="${source.dir}"
            destdir="${class.dir}"
            classpath=""
              nowarn="true"
              encoding="Windows-31j"
            debug="on" />
    这部分换成<javac debug="on" deprecation="true" srcdir="${source.dir}" destdir="${class.dir}" 
    source="1.4"> </javac>对吗?试了试,还是没有达到效果阿!我把一个示例小工程压缩了一下,各位有兴趣的话,可以在这上面改改看:http://d.99081.com/gthboy/AntTest.rar
      

  3.   

    下载楼主的附件看了一下,那个sh目录下的Test类没有写包名,在这个文件的第一行写个包名就好了。java中的包与目录有密切关系,看来楼主是没有理解“包”这个概念。