如何执行外部命令并捕获输出?
答
为此考虑使用Apache Commons Exec。
It is a simple,但实现多平台命令行调用的可靠框架。
以下是执行命令并获取结果输出为String
实例的示例方法。
import java.io.ByteArrayOutputStream;
import org.apache.commons.exec.CommandLine;
import org.apache.commons.exec.DefaultExecutor;
import org.apache.commons.exec.Executor;
import org.apache.commons.exec.PumpStreamHandler;
public String execToString(String command) throws Exception {
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
CommandLine commandline = CommandLine.parse(command);
DefaultExecutor exec = new DefaultExecutor();
PumpStreamHandler streamHandler = new PumpStreamHandler(outputStream);
exec.setStreamHandler(streamHandler);
exec.execute(commandline);
return(outputStream.toString());
}
目前还不清楚你有什么问题。查看[最小化,完整和可验证的示例](http://*.com/help/mcve),并向我们展示您迄今为止所做的以及您的期望。 – gfelisberto
@gfelisberto我已经编辑了他的问题,以便更清楚。 – 2016-05-16 09:30:40
网络中有数百个示例,以及关于如何执行此操作的SO。目前还不清楚OP与“经典”解决方案存在哪些问题。 – gfelisberto