<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, затем запускаем клиент, если удалось достучаться до сервера за заданное время.