如何在servlet中获取后台运行脚本的输出

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在servlet中获取后台运行脚本的输出相关的知识,希望对你有一定的参考价值。

我使用Runtime.getRuntime()。exec()通过java调用脚本,并让脚本在后台运行以创建文件,即使在其他页面上工作,如何在文件完成时在servlet中获取输出

答案

这是获取命令执行输出的代码,但是您无法获得需要更多时间的后台进程的输出。对于更耗时的命令,您必须使用javascript安排命令,您可以定期轮询命令输出。

public void executeAndGetResponse( HttpServletResponse response ) {
    Process process = Runtime.getRuntime().exec( "some command" );

    if( process != null ) {
        int status = process.getWaitFor(); // wait for completion
        InputStream in = null;
        if( status == 0 ) {         
            in = process.getInputStream(); // if success get output
        } else {
            in = process.getErrorStream(); // if failure get error
        }
        OutputStream out = response.getOutputStream();

        org.apache.commons.io.IOUtils.copy(in,out);
    }
}

以上是关于如何在servlet中获取后台运行脚本的输出的主要内容,如果未能解决你的问题,请参考以下文章

ajax获取后台数据渲染(整片文章不分段落)解决方案,要使用htmL方式输出

如何在基于 servlet 的 Web 应用程序中运行后台任务?

如何在基于servlet的Web应用程序中运行后台任务?

如何使用苹果脚本在“后台”或“隐藏”应用程序中运行应用程序?

运行并从后台进程获取输出

Bash:如何在使用微调器时获取命令的退出代码?