这是build.xml
<?xml version="1.0"?>
<project default="build" basedir=".">
   <property name="appname" value="HelloWorld" />
   <property name="base" value="e:\test" />
   <property name="src" value="src" />
   <property name="build" value="classes" />   <property name="myclasspath" value="${base}\${build}" />
   <target name="build">
       <mkdir dir="${build}" />
       <javac srcdir="${src}" destdir="${build}">
           <include name="**/*.java" />
       </javac>
   </target>
   
   <target name="run" depends="build">
       <exec executable="java">
           <arg line=" -classpath ${myclasspath} ${appname}" />
       </exec>
   </target>
 
   <target name="clean">
       <delete includeEmptyDirs="true">
           <fileset dir="${build}" />
       </delete>
   </target> 
</project>我在想是不是这个:
<arg line=" -classpath ${myclasspath} ${appname}" />
给的类的路径不对啊
多谢了!
       

解决方案 »

  1.   

    <target name="run" depends="build">
           <exec executable="java">
               <arg line=" -classpath ${myclasspath} ${appname}" />
           </exec>
       </target>直接这样:
       <target name="run" depends="build">
           <java className="${appname}">
               <classpath>
                   <pathelement path="${build}"/>
                   <pathelement path="${java.class.path}"/>
               </classpath>
           </java>
       </target>
    建议看看ant的文档,我也是初步了解
      

  2.   

    <path id="classpath">
    <pathelement path="${conf}" />
    <pathelement path="${web.classes}" />
    <fileset dir="${web.lib}">
    <include name="**/*.jar" />
    </fileset>
    <fileset dir="${lib}">
    <include name="**/*.jar" />
    </fileset>
    </path><java classname="youclassname(要带包名)" fork="yes">
    <classpath refid="classpath"/>
    </java>
      

  3.   

    hehecafe(我喜欢从高处跳下来的感觉) :
    我按照你写的改了,还是一样的结果它的意思是不是:找不到类呢?
    这个类是不是在这个路径中的名为"HelloWorld"的class文件啊?明明是有的啊!谢谢!
      

  4.   

    我原来的HelloWorld.java文件路径是e:\test\src\test\HelloWorld.java
    在HelloWorld.java文件中,第一句话是:package test
    所以build之后HelloWorld.class的文件路径是:e:\test\classes\test\HelloWorld.class可是,在寻找类的语句中我直接把路径写成:e:\test\classes\test\ 都不对:(现在把HelloWorld.java的文件路径改为:e:\test\src\HelloWorld.java
    所以HelloWorld.class的文件路径变成了:e:\test\classes\HelloWorld.class
    执行run时的错误是关于第一行:package test的
    把这句话给删了
    就可以运行出结果了。虽然现在可以出正常的结果,但是我还是不明白错究竟在什么地方,请大家给讲一下吧多谢了!
      

  5.   

    哦,按你的说法,你提供的类名不正确,你的appName属性应该是"test.HelloWorld",运行一个类的时候要提供全部名字的。
      

  6.   

    <target name="run" depends="build">
           <exec executable="java">
               <arg line=" -classpath  ${build} ${appname}" />
           </exec>
       </target>
    -----------------------------------------------------------
       <target name="run" depends="build" >
           <java classname="${appname}">
       <classpath>
               <pathelement path="${build}"/>
             </classpath>       </java>
       </target>
    ------------------------------------------------------------
    换成上面两种试试,你的class文件是在e:\test\classes下面吗?
      

  7.   

    我原来的HelloWorld.java文件路径是e:\test\src\test\HelloWorld.java
    在HelloWorld.java文件中,第一句话是:package test
    所以build之后HelloWorld.class的文件路径是:e:\test\classes\test\HelloWorld.class可是,在寻找类的语句中我直接把路径写成:e:\test\classes\test\ 都不对:(
    ------------------------------------------------------------------------------
    (上面的情况不用改路径,把appName改为test.HelloWorld就可以了)