2013-02-19 82 views
3

我在JVM中運行了Cobertura instrumentation jar。當我在Windows控制檯中按Ctrl-C時,運行應用程序,JVM結束並且Cobertura結果成功刷新到cobertura.ser文件。但是我需要使用命令/工具(而不是Ctrl-C)停止這個JVM,例如Linux中的「soft kill」(不帶「-9」參數的「kill」命令)。當我使用「的taskkill/PID 1234」,它寫道:在Windows 7中不從命令行強行殺死JVM

D:\>taskkill /PID 1234 
ERROR: The process with PID 1234 could not be terminated. 
Reason: This process can only be terminated forcefully (with /F option). 

但是當我使用參數/ F,JVM被強制終止,這就是爲什麼的Cobertura結果不會刷新到cobertura.ser文件

如何使用Windows命令/第三方工具成功清除Cobertura(windows「soft kill」)來終止JVM?

+0

嗨,我面臨同樣的問題。你有沒有得到任何解決辦法? – 2015-01-20 14:03:01

回答

0

嘗試查看WMI,使用JavaScript或VBScript創建選擇過程並殺死它的規則。

例如http://community.spiceworks.com/scripts/show/498-kill-a-process-using-wmi - 使用VBScript登記簡單殺死腳本

+0

它的工作,但像力殺:-(。 – 2013-02-19 09:36:21

+0

@RadekJira,以及可能讓我們完全轉移範例?通常Cobertura適用於單元測試。放置到您的測試java調用:'System.exit' - 執行期間時間或在某些條件下 – Dewfy 2013-02-19 11:05:41

+0

你是真的,最好的方法是改變範例,我們有非常明確的要求,最好是改變測試覆蓋技術 - 例如JaCoCo,它使用飛行儀器。想法。 – 2013-02-19 12:19:30