0

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

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();
    }
}
4

2 回答 2

3

你可以杀死Process

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

javadoc状态_

杀死子进程。此 Process 对象所代表的子进程被强制终止。

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

在您的 servlet 方法中

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

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

Process p = (Process) req.getSession().getAttribute("process");
于 2013-09-12T13:52:01.947 回答
1

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

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

在使用 tskill 或 taskkill 杀死进程中查看更多信息。

于 2013-09-12T14:04:42.300 回答