Муравей замерзает без предупреждения об исключении - PullRequest
0 голосов
/ 23 февраля 2011

У меня возникла странная проблема, решение которой я не могу найти.Когда я запускаю проект через ant, и есть необъяснимое исключение, ant просто зависает безо всякой ошибки.Вот мой файл сборки.Это многопоточная среда, также

    <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 ]

1 голос
/ 23 февраля 2011

Ctrl + Break покажет вам дамп потоков и укажет, что каждый из них делает (плюс любые тупики).Я предполагаю, что это ваш порожденный AlertHandler процесс, и может быть проще отладить его вне среды Ant.

Если Ctrl + Break не работает (из статьи)

На платформах UNIX вы можете отправить сигнал программе с помощью команды kill.Это сигнал выхода, который обрабатывается JVM.Например, в Solaris вы можете использовать команду kill -QUIT process_id, где process_id - номер процесса вашей Java-программы.

0 голосов
/ 24 февраля 2011

Ant может иногда зависать, когда запускает Java-класс, который запрашивает интерактивный ввод.Возможно ли, что ваш класс AlertData запрашивает ввод?

...