2010-01-28 72 views
3

我目前正在開發一個使用JDI連接到已經運行的「目標」Java應用程序的「調試器」Java應用程序。有什麼辦法讓Ant啓動我的目標應用程序,然後啓動我的「調試器」,而第一個應用程序仍在運行?Ant能夠同時啓動兩個Java應用程序嗎?

是的我知道我可以開發JDI應用程序來啓動目標程序,但這不是我現在想要的。

回答

9

您可以從Ant內生成兩個java程序parallel任務。

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

在第二個線程的睡眠任務可以由WAITFOR條件來代替。

+0

謝謝!這正是我期待的! – Sandro 2010-02-06 05:59:02

3

請看the doc Ant的<exec>指令 - 你應該可以通過使用「spawn」參數來放棄關閉目標應用程序的調用<exec>

編輯:對不起,「amp off」是在後臺運行進程的俚語,它允許Ant在進程運行時繼續工作。

+0

我看到,我唯一遇到的問題是跨操作系統運行java程序是非常不同的。我會需要每個操作系統的執行官,不是嗎? – Sandro 2010-01-29 00:31:28

3

你當然可以從Ant產生進程。這裏有一個簡單的例子:

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

如果你運行這個任務*你會看到螞蟻運行完,但ps將顯示睡眠仍然存在。

java任務還支持spawn

**該示例假定使用sleep命令*的UNIX變體OS。

+0

是否有獨立於操作系統的解決方案? – Sandro 2010-01-29 00:32:30

+0

對spawn使用java任務是獨立於操作系統的。如果你想產生不同的可執行文件,那麼你肯定會進入一個特定於操作系統的世界。但執行任務允許您指定哪個操作系統的任務運行..(只能在Windows上運行,只能在Unix上運行,等等) – Matt 2010-01-29 01:38:59

相關問題