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

标签 java servlets process

如何使用 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();
    }
}

最佳答案

您可以终止进程

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

javadoc

Kills the subprocess. The subprocess represented by this Process object is forcibly terminated.

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

在您的 servlet 方法中

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

在未来的请求中(在同一 session 内)

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

关于java - 如何在servlet中停止exe文件进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18766174/

相关文章:

java - 表单嵌套 - JSP、HTML

java - 除了使用 'continue' 之外,还有另一种使用 while(true) 循环忽略值的方法吗?

java - 如果无法获取锁,Hibernate LockMode 释放并快速失败

java - 使用 Spring 如何在 postHandle 拦截器中以及错误重定向的情况下获取 HttpServletResponse 的内容

Javaobject "Connection"不适用于禁用的 Cookie

linux - 在 Linux 上限制进程内存/CPU 使用

java - java lambda 中的每个嵌套

java - 尝试将工作的现有 java 类复制到 servlet 中,com.mysql.jdbc.Driver 错误

c++ - 统一2个空间内存

windows - 使用属于已终止进程的进程句柄是否安全