Может ли Ant запускать два Java-приложения одновременно? - PullRequest
3 голосов
/ 29 января 2010

В настоящее время я разрабатываю Java-приложение «отладчик», которое использует JDI для подключения к уже запущенному «целевому» Java-приложению. Есть ли способ заставить Ant запустить мое целевое приложение, а затем запустить мой «отладчик», пока первое приложение еще работает?

Да, я знаю, что могу разработать приложение JDI для запуска целевой программы, но сейчас это не то, чего я хочу.

Ответы [ 3 ]

9 голосов
/ 02 февраля 2010

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

<parallel>
  <sequential>
    <java fork="true" classname="prog1 .... >
  </sequential>
  <sequential>
    <sleep seconds="30"/>
    <java fork="true" classname="prog2.... >
  </sequential>
</parallel>

Задача sleep во втором потокеможно заменить условием waitfor .

3 голосов
/ 29 января 2010

Вы, конечно, можете порождать процессы из Ant. Вот простой пример:

<target name="sleeper">
    <exec executable="sleep" spawn="yes">
       <arg value="100" />
    </exec>
</target>

Если вы запустите эту задачу *, вы увидите, как Ant запустится до конца, но ps покажет, что сон сохраняется.

Задача java также поддерживает spawn.

** в примере предполагается вариант ОС UNIX, так как она использует команду сна *.

3 голосов
/ 29 января 2010

Посмотрите на документ для директивы Ant <exec> - вы сможете добавить вызов к целевому приложению с помощью <exec>, который будет отключаться с помощью параметра "spawn".

Редактировать: извините, "amp off" - сленг для запуска процесса в фоновом режиме, что позволяет Ant продолжать работать, пока этот процесс выполняется.

...