Может ли Ant запускать два Java-приложения одновременно?
В настоящее время я разрабатываю Java-приложение "отладчик", которое использует JDI для подключения к уже запущенному "целевому" Java-приложению. Есть ли способ заставить Ant запустить мое целевое приложение, а затем запустить мой "отладчик", пока первое приложение еще работает?
Да, я знаю, что могу разработать приложение JDI для запуска целевой программы, но сейчас это не то, чего я хочу.
3 ответа
Вы можете создать две Java-программы из параллельной задачи Ant.
<parallel>
<sequential>
<java fork="true" classname="prog1 .... >
</sequential>
<sequential>
<sleep seconds="30"/>
<java fork="true" classname="prog2.... >
</sequential>
</parallel>
Задача сна во втором потоке может быть заменена условием ожидания.
Вы можете, конечно, порождать процессы из Ant. Вот простой пример:
<target name="sleeper">
<exec executable="sleep" spawn="yes">
<arg value="100" />
</exec>
</target>
Если вы запустите эту задачу *, вы увидите, что Ant запустится до конца, но ps
покажет сон сохраняется.
Задача Java также поддерживает spawn
,
** в примере предполагается вариант ОС UNIX, так как он использует команду сна *.
Посмотрите на документ для муравья <exec>
директива - вы должны иметь возможность добавить вызов в целевое приложение с <exec>
который будет отключен с помощью параметра "spawn".
Редактировать: извините, "amp off" - сленг для запуска процесса в фоновом режиме, что позволяет Ant продолжать работать, пока этот процесс выполняется.