@raner134

Как при компиляции и запуске через Ant сделать так, чтобы запускалась два класса последовательно?

Есть клиент-серверное приложение на сокетах. Как сделать так, чтобы при сборке и запуске через ant сначала вызывался сервер, а после него - клиент?
  • Вопрос задан
  • 171 просмотр
Решения вопроса 1
zolt85
@zolt85
Программист
<target name="run" description="Run jars">
    <java jar="path/to/server.jar" fork="true"/>

    <waitfor maxwait="5" maxwaitunit="seconds" timeoutproperty="failtimeout">
        <socket server="localhost" port="9999"/>
    </waitfor>
    <if>
         <not>
              <equals arg1="${failtimeout}" arg2="true"/>
         </not>
              <then>
                  <java jar="path/to/client.jar" fork="true"/>
              </then>
    </if>
</target>


Как я понял, проблема в том, что сервер и клиент стартуют одновременно, и клиент сваливается, т.к. не может подключиться к серверу. Обойти это можно при помощи таска waitfor.
Т.е. стартуем сервер, ждем максимум 5 секунд пока не ответит сервер localhost на порту 9999, затем запускаем клиент, если удалось достучаться до сервера за заданное время.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы