2013-02-19 84 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