Ant冻结,异常时没有警告

时间:2011-02-23 17:17:35

标签: java ant build freeze

我遇到了一个我无法找到解决方案的奇怪问题。当我通过蚂蚁运行一个项目并且有一个未被捕获的异常时,蚂蚁只是完全没有错误地冻结。这是我的构建文件。这是一个多线程环境,也是

                          

    <fileset id="masterlibs" dir="${lib.dir}">
            <patternset>
                    <include name="*.jar"/>
            </patternset>
    </fileset>

    <target name="clean">
            <delete dir="${build.dir}"/>
    </target>
    <target name="init">
            <mkdir dir="${build.dir}"/>
    </target>
    <target name="compile" depends="init">
            <javac srcdir="${src.dir}" destdir="${build.dir}">
                    <classpath>
                            <pathelement location="${build.dir}"/>
                            <fileset refid="masterlibs"/>
                    </classpath>
            </javac>
    </target>

    <target name="run" depends="compile">
            <java classname="stockData.AlertHandler" fork="true">
                    <classpath>
                            <pathelement location="${build.dir}"/>
                            <fileset refid="masterlibs"/>
                    </classpath>
                    <arg line="true"/>
                    <arg line="true"/>
                    <arg line="true"/>
                    <arg line="true"/>
                    <arg line="false"/>
                    <arg line="27_4"/>

                    <arg line="false"/>
            </java>
    </target>

2 个答案:

答案 0 :(得分:1)

Ctrl+Break将向您显示一个线程转储,并指出每个线程正在做什么(加上任何死锁)。我猜这是你生成的AlertHandler进程,在Ant环境之外调试它可能更容易。

如果Ctrl + Break不起作用(来自文章)

  

在UNIX平台上,您可以发送一个   通过使用kill向程序发出信号   命令。这是戒烟信号,   由JVM处理。对于   例如,在Solaris上,您可以使用   命令kill -QUIT process_id,where   process_id是进程号   你的Java程序。

答案 1 :(得分:0)

Ant在运行要求交互式输入的java类时有时会冻结。您的AlertData类是否可能要求输入?