我使用ant构建脚本编译一些java类,创建.jar文件并将类放入其中,然后使用ant的exec命令运行批处理文件。 .bat文件使用.jar文件来执行多个java类。
运行.bat文件的命令行输出显示在Eclipse输出窗口中,但是当我点击Eclipse中的停止按钮时,它不会停止执行。它停止在Eclipse中显示命令行输出,但批处理文件控制的进程将继续,直到它到达所有进程的末尾。
这是我的蚂蚁脚本;
<project name="myProject" default="all">
<property name="app.name" value="myProject"/>
<path id="classpath">
<fileset dir="${lib}" erroronmissingdir="false">
<include name="**/*.jar"/>
<exclude name="**/*.properties"/>
</fileset>
</path>
<taskdef name="javac" classname="org.apache.tools.ant.taskdefs.Javac" classpathref="classpath"/>
<taskdef name="groovyc" classname="org.codehaus.groovy.ant.Groovyc" classpathref="classpath"/>
<target name="prepare">
<mkdir dir="${build}"/>
<mkdir dir="${target}"/>
</target>
<!-- COMPILE -->
<target name="compile" depends="prepare">
<delete dir="${classes}"/>
<mkdir dir="${build}"/>
<javac destdir="${classes}"
srcdir="src"
includes="**/*"
classpathref="classpath">
</javac>
<groovyc destdir="${classes}"
srcdir="src"
includes="**/*"
classpathref="classpath">
</groovyc>
</target>
<target name="deploy" depends="compile">
<mkdir dir="${target}/lib"/>
<copy todir="${target}/lib">
<fileset dir="${lib}">
<include name="*.jar"/>
<exclude name="junit*"/>
</fileset>
</copy>
<!-- JAR -->
<jar destfile="${target}/lib/${app.name}.jar">
<fileset dir="${classes}">
<include name="**/*.class"/>
</fileset>
</jar>
<copy todir="${lib}">
<fileset dir="${target}/lib">
<include name="${app.name}.jar"/>
<exclude name="junit*"/>
</fileset>
</copy>
<!-- RUN BATCH FILE -->
<exec dir="." executable="cmd">
<arg line="/c myBatchFile.bat"/>
</exec>
</target>
除了等待它完成之外,我怎么能阻止它执行呢?