2012-09-15 85 views
0

我有一個Ant任務,構建一個可執行JAR文件,運行一些JUnit測試,然後運行可執行JAR文件以查看它是否構建正確。但是,問題是我必須在我的計算機旁邊關閉我的Java程序。在運行幾秒鐘後,有沒有辦法從Ant關閉它?從Ant關閉Java程序?

<target name="buildAndTest" depends="create-submission-jar"> 
    <!-- Other stuff happening here --> 
    <java fork="true" jar="${jar.executable}" failonerror="true" /> 
</target> 
+1

http://stackoverflow.com/questions/10977619/how-to-kill-a-java-process-started-in-ant –

回答

1

可能你的應用程序是線程化的,並且有一個主循環的概念。我認爲更簡單的方法是讓你的應用程序接受一個額外的參數,如--timeout=120s,並使用這個參數來創建一個Timer,優雅地結束主循環(我認爲你會有某種控制變量,一個PID文件或任何東西)。然後Ant會傳遞這個額外的參數,所以在一段時間後,這個過程本身就結束了。

很顯然,如果沒有設置參數,那麼Timer根本就沒有創建,您將使用正常的方式告訴程序停止。