如何在servlet中停止exe文件进程

时间:2013-09-12 13:50:24

标签: java servlets process

如何使用java停止.exe文件。我有一个.exe,点击jsp页面上的按钮开始。现在我不知道如何使用java来阻止它。下面是启动.exe文件的jave代码段。任何人都可以找到阻止它的解决方案吗?

protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
    try {
        res.setContentType("text/html;charset=UTF-8");
        PrintWriter out = res.getWriter();
        Runtime rt = Runtime.getRuntime();
        Process p = rt.exec("C:\\tools\\server\\grd.exe" );
        out.println("ServerStarted");
    } catch (Throwable t) {
        t.printStackTrace();
    }
}

2 个答案:

答案 0 :(得分:3)

你可以杀死Process

Process p = ...    
p.destroy();

javadoc

  

杀死子进程。此进程表示的子进程   对象被强行终止。

如果您将来要杀死请求,则需要保留对Process的引用,可能是HttpSession属性。

在你的servlet方法中

Process p = ...    
req.getSession(true).setAttribute("process", p);

在将来的请求中(在同一会话中)

Process p = (Process) req.getSession().getAttribute("process");

答案 1 :(得分:1)

如果该过程是唯一的,您可以尝试以下操作。小心使用。

Runtime rt = Runtime.getRuntime();
Process p = rt.exec("cmd /c taskkill /F /IM grd.exe");

Kill a process with tskill or taskkill中查看更多内容。