使用ant停止并行java任务

San*_*dro 10 java ant client

我正在开发两个在具有典型服务器/客户端关系的独立VM中运行的java程序.使用ant的并行/顺序任务我已经能够让ant运行服务器然后运行客户端.我现在想要这样,当客户端进程停止时,ant会杀死服务器.我已经看到这对特定服务器应用程序(如TomCat)的自定义ant任务完成,是否存在使用通用Java进程执行此操作的任何方法?

Jas*_*Day 9

由于您正在开发服务器应用程序,因此可以让它侦听"shutdown"命令.然后你可以让ant在客户端退出时发送shutdown命令,例如:

<parallel>
    <server .../>
    <sequential>
        <client ... />
        <!-- client has finished,  send stop command to server -->
    </sequential>
</parallel>
Run Code Online (Sandbox Code Playgroud)

可能适合您的另一个选项是在daemons元素内启动服务器.

<parallel>
    <daemons>
        <server .../>
    </daemons>
    <sequential>
        <client ... />
    </sequential>
</parallel>
Run Code Online (Sandbox Code Playgroud)

这将使服务器在守护程序线程中运行,这不会阻止ant完成.当ant停止时,所有守护程序线程(包括您的服务器)都将被终止.