【问题标题】:Kill JVM not forcibly from command line in Windows 7在 Windows 7 中不从命令行强行杀死 JVM
【发布时间】:2013-02-03 20:47:23
【问题描述】:

我在 JVM 中运行了 Cobertura 检测 jar。当我在运行应用程序的 Windows 控制台中按 Ctrl-C 时,JVM 结束并且 Cobertura 结果成功刷新到 cobertura.ser 文件。但我需要使用命令/工具(不是 Ctrl-C)停止这个 JVM,类似于 Linux 中的“软杀”(“杀”命令没有“-9”参数)。当我使用“taskkill /PID 1234”时,它写道:

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 刷新成功的情况下杀死 JVM(Windows“软杀死”)?

【问题讨论】:

  • 嗨,我也面临同样的问题。你有没有解决这个问题?

标签: java windows cobertura


【解决方案1】:

尝试查看WMI,使用 JavaScript 或 VBScript 创建选择进程并杀死它的规则。

例如http://community.spiceworks.com/scripts/show/498-kill-a-process-using-wmi - 使用 VBScript 获取简单的终止脚本

【讨论】:

  • @RadekJira,也许让我们彻底改变一个范式?通常将 Cobertura 应用于单元测试。放置到您的测试 java 调用:System.exit - 在一段时间或在某些条件下执行之后。
  • 你说得对,最好的办法就是改变范式。我们有非常具体的要求,最好更改测试覆盖技术 - 例如 JaCoCo,它使用即时检测。感谢您的想法。
猜你喜欢
  • 2019-01-22
  • 2012-11-21
  • 2019-02-04
  • 1970-01-01
  • 1970-01-01
  • 2013-11-29
  • 2016-08-19
  • 1970-01-01
相关资源
最近更新 更多