我使用Runtime.getRuntime()。exec()通过java调用脚本,让脚本在后台运行以创建文件,即使在其他页面上工作,如何在文件完成时在servlet中获取输出
答案 0 :(得分:0)
以下是获取命令执行输出的代码,但是无法获得后台进程的输出,这需要更多时间。对于更耗时的命令,您必须使用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);
}
}